NSControl的addTarget()方法在哪里?

时间:2018-09-24 14:11:49

标签: swift nsbutton nscontrol

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

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


解决方案:

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:-2)

它仍然存在...您可能需要复习文档。

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