NSPoupupButton的Swift子类,如何在子类内获取 Action (IBAction)

标签 swift events ibaction first-responder

在 Swift 4 中,我对 NsPopupButton 进行了子类化。我可以在 View 中使用该控件并执行通常的 Ctrl-拖动操作来创建 IBAction 以及所有这些工作。

我想要做的是处理子类本身内的操作,并允许 View 响应。

我是 Swift/MacOS/Xcode 新手,但在 Windows 中使用 C# 进行编程,并了解目标/操作和响应者树遍历的概念 - 但请对我温柔一些:)这样做的原因是为了拦截用户选择一个项目并将其保存以供以后恢复。

我尝试在子类中将 self.target = self 和 self.action = #Selector 设置为本地函数。这可行,但是操作/事件停止遍历响应者树,它只是停止在子类中。

那么,如何让子类响应用户更改选择,然后让其他任何内容也响应该操作?

最佳答案

在 macOS 中,有一种称为 Cocoa Bindings 的模式。它可以非常方便地替代目标/操作。

按住 Control 键并从弹出按钮的菜单项拖动到目标 View Controller (如果使用 xib,则为类)的第一响应者(读取多维数据集)。如果正确创建了IBAction,它应该会出现在列表中。该操作方法在当前响应者链中已实现该方法的第一个对象中执行。

关于NSPoupupButton的Swift子类,如何在子类内获取 Action (IBAction),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48026005/

相关文章:

ios - SpriteKit swift : SKView returning nil

ios - 将 MTLTexture 转换为 CVPixelBuffer

JavaScript 窗口按比例调整大小

javascript - JQuery 模糊事件

xcode8 - Xcode 8 拖动并连接 @IBAction 错误地在连接检查器 IB 上添加了 "WithSender"

xcode - NSTextField 在文本更改时调用 IBAction

swift - 如何在 Swift 中隐藏操作按钮?

ios - 在 Swift 中使用可选值

ios - WKWeb View 。 didStartProvisionalNavigation 未调用

c# - OpenOrder 仅针对第一个打开订单的交互式经纪人