NSButton忽略了太靠近的点击

时间:2013-02-17 05:24:14

标签: objective-c cocoa nsbutton

NSButton忽略了太靠近的点击次数。

如果我慢慢点击,所有点击都会被确认,但如果我开始加速,在某个时刻它将停止发送mouseDown:events。如果我然后放慢速度,那么在某个点上所有点击都会再次开始传播。

对于这个应用程序中的几个按钮,会发生锤击,并且没有理由不允许它。

我尝试过setIgnoresMultiClick:,但它不会改变行为。

我尝试了继承NSButton,重写了mouseDown:,重新创建了事件对象的副本,但按钮计数设置为1。

仍然没有骰子。

有人知道这里的诀窍吗?

SEMI-Resolved(......虽然有缺点)。

可能有六种方法可以做到这一点,但这是我启用按钮锤击的方法......

@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)只能影响特定的按钮......那就太棒了。

1 个答案:

答案 0 :(得分:0)

您需要更改系统偏好设置 - 鼠标 - 双击速度 - 快速