2

두 번째 클릭을 허용하도록 NSOutlineView를 가져 오려고하지만이를 파악하지 못했습니다. 트랙 패드에서 두 손가락, 오른쪽 모서리 및 왼쪽 모서리로 보조 클릭을 변경하려고 시도했지만 여전히 mousedown 이벤트의 개요보기에는 아무런 반응이 없습니다. 누구든지 나를 도울 수 있습니까?보조 클릭 nsresponder, 오른쪽 클릭이 작동하지 않습니다.

UPDATE :

내가 보조 클릭이 기록됩니다 이것을 사용하지만, 여전히 rightMouseDown에 표시 나던 경우 기능.

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

}]; 

UPDATE :

난 아직이 문제를 해결하는 방법을 모르겠어요. 내 NSCollectionView는 rightMouseUp에 응답하지만 rightMouseDown에는 응답하지 않습니다. 어째서?

TNX 사과 문서는 특히 rightMouseDown에 대해 이야기

답변

0

은 (상황에 맞는 메뉴의 경우) 리스폰 더 체인에 더 높은 최대에서 처리 되 고 특별히 하나의 서브 클래스로 아래로 전달되지 않습니다. acceptsFirstResponder를 재정의 (override)하는 것에 관한 문서가 나와 있지만, 그 중 하나를 작동시키지 못했습니다.

그래서 rightMouseDown 이벤트를 실행할 수는 없지만 위조하도록 코드를 수정할 수있었습니다. 이벤트를 로깅하는 대신 내 rightMouseDown 이벤트 처리기 대신 호출합니다.

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

누군가가이 문제보다 더 나은 빛을 발할 수 있기를 바랍니다.하지만 적어도 시작에 불과합니다.

0

mouseDown을 무시할 때 비슷한 문제가 발생합니다. 두 경우 모두 mouseDown에서 rightMouseDown :을 호출하여 동일한 동작을 수행해야했습니다. 이것은 매버릭스에서 작동을 멈췄습니다.

대신 이벤트 유형을 rightmousedown 클릭으로 변경하는 것이 좋습니다. 아마도 이것은 당신을 도울 것입니다 :

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