所以我好几年没看Swift/Cocoa了。我刚刚使用Xcode 10.0创建了一个简单的macOS应用程序,并看到NSControl不再有addTarget(...)方法。它看起来被id类型的id属性替换了。
现在如何为按钮单击这样的操作添加处理程序,因为我需要指定操作(例如,单击)、要调用的对象以及调用该对象的选择器。
解决方案:
let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
statusItem.button?.target = self
statusItem.button?.action = #selector(didClick(_:))发布于 2018-09-24 14:22:39
对,基于方法的语法foo.addTarget(self)已经被基于属性的语法foo.target = self所取代。它仍然存在于UIKit中,因为在Cocoa中,您还必须指定控制事件。
所有相关的NSControl子类都有init方法来传递target和action。
发布于 2018-09-24 14:20:52
它还在那里..。您可能需要检查文档作为复习器。
https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget
https://stackoverflow.com/questions/52481264
复制相似问题