NSSearchField 搜索按钮事件响应
查看NSSearchField
官方文档可知NSSearchFieldDelegate
代理事件包括:
-
searchFieldDidStartSearching
搜索框已经开始输入内容时刻。 -
searchFieldDidEndSearching
搜索框已完成输入。
左侧搜索按钮事件和右侧清空按钮事件需要通过target-action
模式绑定响应事件。
- 如图内容视图上添加一个
NSSearchField
控件,连接控件Referencing Outlets
变量到searchF
变量。 - 首先获取到搜索按钮和取消按钮,代码如下:
let searBtnCell = searchF.cell as! NSSearchFieldCell
//搜索按钮
let searBtnActionCell = searBtnCell.searchButtonCell
searBtnActionCell?.target = self
searBtnActionCell?.action = #selector(searchBtnAction(_:))
//清空按钮
let cancelBtnCell = searBtnCell.cancelButtonCell
cancelBtnCell?.target = self
cancelBtnCell?.action = #selector(cancelBtnAction(_:))
- 响应事件
@objc func searchBtnAction(_ sender: NSSearchField) {
print("searchBtnAction =====")
//搜索逻辑
}
@objc func cancelBtnAction(_ sender: NSSearchField) {
print("cancelBtnAction =====")
//会拦截自带清空操作
sender.stringValue = ""
//清空逻辑
}