2014-04-22 4 views
0

NSTableView에서 [cmd + double-click] 이벤트에 대한 블록을 호출해야합니다. -setDoubleAction : 더블 클릭 이벤트에 대한 선택기를 설정하는 API에 대해 알고 있습니다. & -keyDown : 키 누르기 이벤트 처리를위한 대리자 메서드입니다.Objective-c의 사용자 지정 이벤트 처리

필요한 것은 단일 사용자 정의 이벤트 처리기에서 이러한 2를 조합하는 것입니다. 모든 포인터 정말 감사하겠습니다.

콜백 선택기를 설정하는 이러한 맞춤 이벤트에 등록 할 수있는 방법이 있습니까?

답변

0

내가 충분히 잘 모르겠지만 BOOL 속성을 선언 하겠지만 원하는 키의 keyDown 이벤트에서 'YES'로 설정하고 'NO'로 설정하면 keyUp 이벤트. 두 번 클릭 이벤트에 대한 동작에서 BOOL 속성을 확인하고, '예'일 경우 -> 그렇지 않으면 반환합니다.

+0

예. 확실한 방법입니다. 이것이 내 목록에있는 최후의 수단입니다. 좀 더 미묘한 결합 이벤트 처리 방법은 내가 찾고있는 것입니다. 하나의 대리자 콜백이 아니라 2 번입니다. 어쨌든, 어떤 실제 시나리오에서 이것을 시도 했습니까? 어떤 이상이나 지연이 보이나요? –

+1

나는 결합 된 이벤트 처리를 해결하기 위해 래퍼를 작성했다. 다음 콜백을 사용 : ** - (void) flagsChanged : (NSEvent *) theEvent **, 관련 키가 눌려 졌는지/풀렸는지를 체크 할 수 있고 그것에 기반하여 프라이빗 플래그를 설정할 수 있습니다. 그런 다음 ** - setDoubleAction : **에서 키를 눌렀는지 확인하고 [cmd + 두 번 클릭]에서 관련 메소드를 호출합니다. –

관련 문제