NSControl的addTarget()方法在哪里?



所以我已经好几年没有看过 Swift/Cocoa 了。我刚刚使用 Xcode 10.0 创建了一个简单的 macOS 应用程序,发现NSControl不再有addTarget(...)方法。看起来它被id类型的target属性所取代。

我现在如何为按钮单击之类的内容添加处理程序,因为我需要指定操作(例如单击(、要调用的对象以及要调用该对象的选择器。


溶液:

let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
statusItem.button?.target = self
statusItem.button?.action = #selector(didClick(_:))

是的,基于方法的语法foo.addTarget(self)已替换为基于属性的语法foo.target = self。它仍然存在于UIKit中,因为在Cocoa Touch中,您还必须指定控制事件。

所有相关的NSControl子类都有init传递targetaction的方法

它仍然在那里... 您可能需要查看文档作为复习。

https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget

最新更新