2013-04-06 42 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]; 
}