cocoa 如何区分侧键和滚轮键?

How to differentiate side and wheel buttons with cocoa?

我的鼠标有 5 个按钮。它们是左键、右键、滚轮和 2 个侧边按钮 (back/forward)。有什么方法可以检查是否按下了侧面按钮(例如“后退”)?我正在学习 cocoa 关于鼠标事件的文档。目前我知道有 - (void)otherMouseDown:(NSEvent *)event; 方法,只要按下其他(不是 right/left)按钮就会调用该方法。但是文档没有说明实际按下哪个按钮的附加信息。如何克服这个问题?

-(void)scrollWheel:(NSEvent *)event; method of NSResponder and so also from NSViews

- (void)rightMouseDown:(NSEvent *)event; same way

- (void)otherMouseDown:(NSEvent *)event如你所知

还有..

-(void)someAction:(id)sender 
{
    NSEvent *event = [NSApp currentEvent];
    if (event.type == NSEventTypeLeftMouseUp ||
        event.type == NSEventTypeLeftMouseDown) 
    { 
        if (event.clickCount == 2) {  
            // doubleClick
        }
    } 
    else if (event.type == NSEventTypeOtherMouseDown) 
    {
        if (event.buttonNumber==4) 
        {
            //i think first button is 0, so 5 should be 4.
        }
    }
}

AppKit 的 NSEvent.h 拥有您需要的一切,只需先检查事件的 type,然后再选择 buttonNumber 以及您选择的任何内容