2013-04-06 44 views
2

我试图让NSOutlineView接受辅助点击,但似乎无法弄清楚。我尝试更换来自两个手指的辅助点击,触摸板的右上角和左侧角落,并且仍然没有在mousedown事件的大纲视图中获得任何响应。谁能帮我?辅助点击nsresponder,右键单击不起作用

UPDATE:

如果我用这个二次点击登录,但它仍然犯规在rightMouseDown显示:功能。

[NSEvent addLocalMonitorForEventsMatchingMask:NSRightMouseDownMask handler:^(NSEvent* event) { 
    NSLog(@"%@", event); 
    return (NSEvent *)event; 

}]; 

UPDATE:

我还是不知道如何解决这个问题。我的NSCollectionView响应rightMouseUp,但不是rightMouseDown。怎么来的?

TNX

回答

0

苹果文档专门谈到rightMouseDown在了较高的被处理的响应链(用于上下文菜单),并明确不下来传递到一个的子类。该文件谈到了重写acceptFirstResponder,但我无法让它工作。

所以,虽然我不能得到正确的鼠标事件触发,我能够修改您的代码来伪造它。我没有记录事件,而是调用我的rightMouseDown事件处理程序。

[NSEvent addLocalMonitorForEventsMatchingMask:NSRightMouseDownMask handler:^(NSEvent* event) { 
     [self rightMouseDown:event]; 
     return (NSEvent *)event; 
    }]; 

希望有人能够照到比这个问题的一些更好的光,但至少这是一个开始。

0

在覆盖mouseDown时有类似的问题:我需要调用rightMouseDown:从mouseDown在这两种情况下具有相同的行为。这在小牛队停止了工作。

相反,当您需要这种情况发生时,最好将事件类型更改为rightmousedown。也许这会帮助你:

- (void)mouseDown:(NSEvent *)event; 
{ 
    [event setValue:@(NSRightMouseDown) forKey:@"type"]; 
    [self rightMouseDown:event]; 
}