MacOS - 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 = ""
        //清空逻辑
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章