1

如何在可可中为具有两个单独功能的 NSButton 分配单击事件和双击事件(没有子类化按钮)

4

3 回答 3

4

NSApplication 可以给你一个NSEvent给定的选择器。因此,只需修改您希望添加双击逻辑以支持该事件的方法,并使用其clickCount属性来响应任意数量的连续点击,如下所示:

- (void)someMethod:(id)sender {
    NSEvent *event = [NSApp currentEvent];
    switch (event.clickCount) {
        case 1:
            //Handle a single click
            break;
        case 2:
            //Handle a double click
            break;
        default:
            break;
    }
}
于 2013-05-29T06:07:11.940 回答
0

看看NSResponder class.Override- (void)mouseUp:(NSEvent *)theEvent方法。

mouseUp:通知接收者用户已释放鼠标左键。

- (void)mouseUp:(NSEvent *)theEvent
{
 if([theEvent clickCount]==1)
 {
  NSlog(@"Single click");
 }
}
于 2013-05-29T06:34:05.590 回答
-1

下面应该解决您的问题

@property (strong) IBOutlet NSButton *myButton;

然后稍后将双重动作设置为您的 NSButton

[[self.myButton cell] setDoubleAction:@selector(showMsg:)];
[[self.myButton cell] setTarget:self];
于 2013-05-29T07:24:51.637 回答