gpt4 book ai didi

swift - NSControl 的 addTarget() 方法在哪里?

转载 作者:行者123 更新时间:2023-11-28 09:22:56 25 4
gpt4 key购买 nike

所以我已经好几年没有研究过 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

关于swift - NSControl 的 addTarget() 方法在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52481264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com