Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift NSSearchField TextDidChange的方法是什么?_Swift_Xcode_Macos_Cocoa - Fatal编程技术网

Swift NSSearchField TextDidChange的方法是什么?

Swift NSSearchField TextDidChange的方法是什么?,swift,xcode,macos,cocoa,Swift,Xcode,Macos,Cocoa,macOS中的函数searchBar(searchBar:UISearchBar,textDidChange searchText:String)的类似方法是什么 我得到了答案: @IBOutlet weak var searchBar: NSSearchField! func controlTextDidChange(_ obj: Notification){ let searchObject:NSSearchField? = obj.object as? NSSearchFie

macOS中的函数
searchBar(searchBar:UISearchBar,textDidChange searchText:String)
的类似方法是什么

我得到了答案:

 @IBOutlet weak var searchBar: NSSearchField!
  func controlTextDidChange(_ obj: Notification){
    let searchObject:NSSearchField? = obj.object as? NSSearchField
    if searchObject==self.searchBar{

    }
}

等效的方法是委托方法

通知的对象是
NSSearchfield
。你必须投这种类型

@IBOutlet weak var searchBar: NSSearchField!

func controlTextDidChange(_ notification : Notification){
    guard let field = notification.object as? NSSearchField, field == self.searchBar else { return }

}

您需要添加
controlTextDidChange
方法,如下图所示(最后一种方法),然后添加
searchFieldDidEndSearching

跟踪您何时完成搜索,或者搜索栏是否为空,并且当您刚开始编辑空文本字段时,
searchFieldDidStartSearching(uSender:NSSearchField)
将被调用


        DispatchQueue.main.async {
            self.searchTable.reloadData()
        }
    }

    func searchFieldDidStartSearching(_ sender: NSSearchField) {


    }

    func controlTextDidChange(_ obj: Notification) {
        guard let field = obj.object as? NSSearchField, field == self.searchBar else { return }
        filteredPokemonList = allPokemonList.filter({ (pokemon) -> Bool in
            return pokemon.name.lowercased().contains(field.stringValue.lowercased())
        })

        DispatchQueue.main.async {
            self.searchTable.reloadData()
        }
    }
下面是我的属性检查器的一张图片,该检查器根据输入的每个字母调用一个函数,以过滤和重新加载NSTableView

请删除您的“得到答案”编辑并将其作为实际答案重新发布!