NSControl 的 addTarget() 方法在哪里?
Where is NSControl's addTarget() method?
所以我已经好几年没看过 Swift/Cocoa 了。我刚刚使用 Xcode 10.0 创建了一个简单的 macOS 应用程序,发现 NSControl
不再具有 addTarget(...)
方法。看起来它被替换为 target
属性 类型 id
.
由于我需要指定操作(例如单击)、要调用的对象以及调用该对象的选择器,现在我该如何为按钮点击等操作添加处理程序。
解法:
let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
statusItem.button?.target = self
statusItem.button?.action = #selector(didClick(_:))
它仍然存在...您可能想复习一下文档。
https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget
是的,基于方法的语法 foo.addTarget(self)
已被基于 属性 的语法 foo.target = self
取代。它仍然存在于 UIKit
中,因为在 Cocoa Touch 中您还必须指定控制事件。
并且所有相关的 NSControl
子类都有 init
方法来传递 target
和 action
所以我已经好几年没看过 Swift/Cocoa 了。我刚刚使用 Xcode 10.0 创建了一个简单的 macOS 应用程序,发现 NSControl
不再具有 addTarget(...)
方法。看起来它被替换为 target
属性 类型 id
.
由于我需要指定操作(例如单击)、要调用的对象以及调用该对象的选择器,现在我该如何为按钮点击等操作添加处理程序。
解法:
let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
statusItem.button?.target = self
statusItem.button?.action = #selector(didClick(_:))
它仍然存在...您可能想复习一下文档。
https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget
是的,基于方法的语法 foo.addTarget(self)
已被基于 属性 的语法 foo.target = self
取代。它仍然存在于 UIKit
中,因为在 Cocoa Touch 中您还必须指定控制事件。
并且所有相关的 NSControl
子类都有 init
方法来传递 target
和 action