objective-c - 我如何知道哪个事件导致了对 IBAction 的调用?

标签 objective-c macos cocoa

假设我有一个按钮..如果单击和双击都调用我的 IBAction,我如何区分单击和双击?有没有办法知道哪个事件导致了调用,或者设置不同的操作,针对每种类型的事件?

最佳答案

编辑:

在 Cocoa 中,据我所知,每个控件都有一种它响应的“固定”事件。要管理双击,您应该重写方法 mouseUpmouseDown,您将在其中获取有关点击次数的信息。

- (void)mouseUp:(NSEvent*)event {
    NSInteger count = [event clickCount];
    <do_something_depending_on:count];
}

旧答案:

通过在 Interface Builder 中显示控件的操作选项卡,然后将正确的事件类型连接到 Controller 操作,您可以定义与同一控件关联的多个 IBAction。看看附图,希望它能更清楚。它显示按钮可用的事件。

enter image description here

关于objective-c - 我如何知道哪个事件导致了对 IBAction 的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273610/

相关文章:

objective-c - MFMailComposer - 附件大小

objective-c - NSArrayM objectAtIndex :]: index 0 beyond bounds for empty array when checking NSPasteboard

python - 无法安装 Tensorflow Mac

swift - 在 Swift 4 中设置 NSMenuItem 修饰符导致 "Type of expression is ambiguous"

swift - NSScrollView 包含 NSStackView。为什么 NSStackView 项目从底部到顶部?

ios - 当用户滚动相邻的 UIScrollView 时,我的 UIView 子类不调用 drawRect

ios - 如何在不知道它是哪个 View 的情况下将 UIView 添加为最顶层 View 的 subview ?

ios - 链接器命令失败,退出代码 1(使用 -v 查看调用),Xcode 8,Swift 3

objective-c - NSMutableArray 中对象的生命周期

cocoa - 在属性更改时强制重绘自定义 cocoa 控件