查看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 = ""
//清空邏輯
}