NSButton 忽略了靠得太近的点击。
如果我慢慢点击,所有点击都会被确认,但如果我开始加快速度,它会在某个时刻停止发送 mouseDown: 事件。如果我然后放慢速度,在某个点上,所有点击都会再次开始传播。
对于这个应用程序中的几个按钮,会发生锤击,并且没有理由不允许它。
我试过 setIgnoresMultiClick:,但它不会改变行为。
我尝试继承 NSButton,覆盖 mouseDown:,重新创建事件对象的副本,但按钮计数设置为 1。
还是没有骰子。
有人知道这里的诀窍吗?
半解决(......虽然有缺点)。
可能有六种方法可以做到这一点,但这是我启用按钮锤击的方法......
@interface HammerClickWindow : NSWindow {;;}
@end
@implementation HammerClickWindow
- (void)sendEvent:(NSEvent *)event
{
if ( event.type == NSLeftMouseDown )
{
[super sendEvent:[NSEvent mouseEventWithType:event.type location:event.locationInWindow modifierFlags:event.modifierFlags timestamp:event.timestamp windowNumber:event.windowNumber context:event.context eventNumber:event.eventNumber clickCount:1 pressure:event.pressure]];
}
}
@end
如果有人知道如何做到这一点,它 (A) 不会影响窗口中 100% 的鼠标按下,并且 (B) 只能影响特定的按钮......那就太好了。