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