2017-06-06 119 views
0

如何检查我是否按下了NSSearchField搜索按钮? search button of NSSearchField如何检查NSSearchField的搜索按钮1是否被按下

@IBAction func searchTextField(_ sender: NSSearchField) { 
     if `searchButtonIsClicked` { 
      //Code if searchButtonIsClicked 
      return 
     } 
     if sender.stringValue != "" { 
      //My code 
     } 
    } 

什么,我需要做的,而不是searchButtonIsClicked

+0

你需要做的是添加'tap-gesture' ** action **到'UIView'。请参阅[这里](https://stackoverflow.com/a/32480721/5175709)。仅供参考有一个非常重要但很容易的概念命名为:** target-action ** ....目标通常是一个UIVIew ...并且该动作是一旦该视图被触发就会触发的功能。 – Honey

+0

你为什么想知道? – Willeke

+0

@ Honey感谢您的信息,但我的问题是针对os x app,而不是针对iOS。 –

回答

0

以下是解决方案。

import Cocoa 

class ViewController: NSViewController { 

    @IBOutlet weak var searchFieldText: NSSearchField! 
    @IBOutlet weak var labelSearchText: NSTextField! 

    @IBAction func searchFieldButton(_ sender: NSSearchField) { 
     if searchFieldText.stringValue != "" { 
      //My code. For example: 
      labelSearchText.stringValue = searchFieldText.stringValue 
     } 

    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
     let cellMenu = NSMenu(title: "Search Menu") 

     var item: NSMenuItem! 
     item = NSMenuItem(title: "Clear", action: nil, keyEquivalent: "") 
     item.tag = Int(NSSearchFieldClearRecentsMenuItemTag) 
     cellMenu.insertItem(item, at: 0) 

     item = NSMenuItem.separator() 
     item.tag = Int(NSSearchFieldRecentsTitleMenuItemTag) 
     cellMenu.insertItem(item, at: 1) 

     item = NSMenuItem(title: "Recent Searches", action: nil, keyEquivalent: "") 
     item.tag = Int(NSSearchFieldRecentsTitleMenuItemTag) 
     cellMenu.insertItem(item, at: 2) 

     item = NSMenuItem(title: "Recents", action: nil, keyEquivalent: "") 
     item.tag = Int(NSSearchFieldRecentsMenuItemTag) 
     cellMenu.insertItem(item, at: 3) 
     searchFieldText.searchMenuTemplate = cellMenu 
    } 

    override var representedObject: Any? { 
     didSet { 
     // Update the view, if already loaded. 
     } 
    } 
} 

谢谢你的帮助。

+0

这不是问题的答案。或者是“如何更改菜单?”这个问题? – Willeke

相关问题