如何使用Cocoa区分鼠标侧键与滚轮按键?
解决方案
在Cocoa中,你可以通过NSEvent实例的buttonNumber属性获取被按下的具体鼠标按键编号,主流多键鼠标的按键编号遵循固定的约定:
- 0:鼠标左键
- 1:鼠标右键
- 2:滚轮中键
- 3:后退侧键(通常为靠近用户手掌一侧的侧键)
- 4:前进侧键
- (void)otherMouseDown:(NSEvent *)event回调触发时,对应按键的buttonNumber值一定大于等于2,你可以直接在该方法内通过判断编号区分触发的按键:
- (void)otherMouseDown:(NSEvent *)event { NSInteger pressedButton = event.buttonNumber; if (pressedButton == 3) { // 处理后退侧键按下逻辑 } else if (pressedButton == 4) { // 处理前进侧键按下逻辑 } }
如果需要同时监听按键抬起的事件,实现对应的otherMouseUp:方法,按相同逻辑判断即可。
内容的提问来源于stack exchange,提问作者Alex Aparin
相关产品推荐
相关产品推荐

