gpt4 book ai didi

swift - 如何从自定义类中提供 "sent action"?

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

我正在 Swift 中基于 NSObject 开发自定义类。它是一个状态菜单图标/菜单助手。当我收到在自定义类中单击图标的事件时,我想以 NSButton 允许创建 IBAction 来响应用户单击按钮的相同方式传递该事件。

我该怎么做?

代码:

我正在我的类中注册一个选择器来监听点击:

statusItem.action = #selector(statusBarIconClicked)

接收此信息的选择器:

@objc func statusBarIconClicked(sender: AnyObject) {
print("clicked clicked!!")
// pass sent action on through a new sent action... how?
}

我希望它可以链接到用户,就像按钮可以导致这样:

@IBAction func myClassSaysMenuWasClicked(_ sender: Any) {
// Reacting to that
}

谷歌搜索了一段时间,没有发现什么。

最佳答案

我认为您正在询问连接检查器中显示的这类事情(这是 iOS,不是 macOS,但它是相同的想法):

enter image description here

问题是:当用户在 Xcode 的 nib 编辑器中选择我的类的实例时,我希望这些已发送事件出现在连接检查器中,以便用户可以连接其中一个并使用目标-行动架构。

仅当您的类是 Control 子类时才可以执行此操作。因此,例如,在 iOS 中,自定义 UIControl 子类会在 Interface Builder 中显示这些发送的事件。

如果您做不到这一点,那么程序员将无法在 Interface Builder 中配置您的目标操作。您当然可以实现目标-操作架构,但程序员必须在代码中设置目标和操作。 (当然,你可以通过将目标作为一个导出来完成一半的工作。)

关于swift - 如何从自定义类中提供 "sent action"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52392346/

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