从 NSView 发送动作,就像使用 NSButton

Posted

技术标签:

【中文标题】从 NSView 发送动作,就像使用 NSButton【英文标题】:Send actions from a NSView just like with NSButton 【发布时间】:2017-02-01 17:38:39 【问题描述】:

我正在制作一个幻灯片应用程序,我希望能够在其中单击显示幻灯片的视图以暂停或播放它。我希望就像使用按钮一样,我可以向我的 ViewController 发送一个操作,从而调用一个可以称为 slideshowViewClicked 的函数。

我发现有人试图用通知做类似的事情,但发送操作对我来说似乎是正确的方法。

那么有人可以向我解释如何将操作从视图发送到其 ViewController,就像使用按钮完成一样?

提前非常感谢!

【问题讨论】:

我认为这可以解决您的问题。 ***.com/questions/27880607/… 【参考方案1】:

在您的 UIView 子类中,实现相应的鼠标事件(例如 mouseDown)并调用 slideshowViewClicked

【讨论】:

【参考方案2】:

您可以拨打-[NSApplication sendAction:to:from:]。如果您使用nil 作为目标,应用程序对象将搜索响应者链。否则,action 方法将直接发送到目标。

您可以考虑将您的类设为NSControl 的子类,尽管这确实涉及一些包袱。在这种情况下,您将调用继承的 -sendAction:to: 方法。

【讨论】:

以上是关于从 NSView 发送动作,就像使用 NSButton的主要内容,如果未能解决你的问题,请参考以下文章

从ajax发送时动作参数获取值为null是可以的

NSSlider:如何同时发送值和动作?

如何使用Swift 3从Xib加载NSView

从 viewcontrollernib 加载 NSView

从 nib 以编程方式从 NSView 的子类加载对象

从父母发送消息给孩子