如何在Swift中的NSTextView中实现NSTextFinderClient协议?

时间:2016-01-26 09:31:43

标签: swift cocoa nstextview

我有一个NSTextView,其中以编程方式更改文本。我有this问题中提到的确切问题。但是因为我使用swift,我得到编译器错误说" Type of' string'具有与协议所要求的不同的选择性NSTextFinderClient'"当我尝试在NSTextView中实现NSTextFinderClient协议时。我需要帮助才能弄清楚如何正确地做到这一点。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。 替换此

class TextView: NSTextView, NSTextFinderClient {
    var textFinder: NSTextFinder!
}

通过

class TextView: NSTextView {
    @IBOutlet weak var textFinder: NSTextFinder!
}

将TexTFinder对象拖放到包含TextView插座的场景中。将TextView的textFinder链接到TextFinderObject,并使TextView成为Outlet的客户端。在此之后,您就可以向FindBar发送通知,例如textFinder.noteClientStringWillChange()textFinder.performAction(.HideFindInterface)。在这样做时,我们不需要以编程方式将TextView对象确认为NSTextFinderClient协议。