我正在制作一个新的 Swift (3.0) 框架,它涉及使用以编程方式创建的 NSSearchField,就像其他视图一样。该框架将部署目标设置为 10.10,我发现无法为其设置委托方法很奇怪。事实上 NSSearchFieldDelegate 只出现在 10.11 上。
class PlistEditor: NSObject, NSOutlineViewDelegate, NSOutlineViewDataSource, NSTextFieldDelegate, NSSearchFieldDelegate {
var searchField : NSSearchField?
// more code..
init(tabItem: NSTabViewItem,
plistPath: String?) {
// more code..
let sf = NSSearchField(frame: NSMakeRect(80, 0, 80, 22))
self.searchField? = sf
// more code..
super.init()
// more code..
if #available(OSX 10.11, *) {
self.searchField?.delegate = self
} else {
// Fallback on earlier versions
}
// more code
}
}
好的,我认为它是 NStextField 固有的,也许我可以访问单元格并使用超类委托进行设置,但不幸的是我找不到这样做的方法。我需要的是能够在 10.10 中接收 NSText/NSTextField 通知。我怎样才能做到这一点?
已编辑:添加了有关如何制作的更多信息以及一些图片