如何检查NSSearchField的搜索按钮1是否被按下
问题描述:
如何检查我是否按下了NSSearchField搜索按钮? search button of NSSearchField如何检查NSSearchField的搜索按钮1是否被按下
@IBAction func searchTextField(_ sender: NSSearchField) {
if `searchButtonIsClicked` {
//Code if searchButtonIsClicked
return
}
if sender.stringValue != "" {
//My code
}
}
什么,我需要做的,而不是searchButtonIsClicked
?
答
以下是解决方案。
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
你需要做的是添加'tap-gesture' ** action **到'UIView'。请参阅[这里](https://*.com/a/32480721/5175709)。仅供参考有一个非常重要但很容易的概念命名为:** target-action ** ....目标通常是一个UIVIew ...并且该动作是一旦该视图被触发就会触发的功能。 – Honey
你为什么想知道? – Willeke
@ Honey感谢您的信息,但我的问题是针对os x app,而不是针对iOS。 –