2010-06-29 2 views
1

그냥 다른 키 입력을 감지 한 다음 키를 눌렀다는 것을 감지하는 방법이 궁금합니다. -(void)keyDown:(NSEvent *)event 그러나 결과는 아무 것도없는 것 같습니다. 나는 또한 주위를 검색했지만 아무것도 찾지 못했습니다. 필자는 키 입력을 감지하기 위해 인터페이스 빌더에서 뭔가를 설정해야 할 수도 있습니다. 나는 또한 텍스트 필드가 뭔가있는 경우 선택한 것과 관련이 있다고 생각합니다.어떻게 객관적인 c를 사용하여 키 입력을 감지합니까?

+2

[- (void) keyDown : (NSEvent *) 이벤트가 작동하지 않습니다 ..] (http://stackoverflow.com/questions/1069433/void-keydown-nsevent-event-does-not-work)) –

+2

믹 와플 (Mick waffle) : 키 입력을 감지하려는 것에 대해 좀 더 자세히 설명해야합니다. 키 스트로크를 처리하는 데는 여러 가지 방법이 있으며, 어떤 방식으로하는지는 자신이하는 일에 따라 다릅니다. –

+0

안녕하세요 피터, 죄송합니다. 어떤 키를 눌렀는지 (기능 키에서 문자까지)에 따라 키가 무엇인지에 따라 자체 메서드를 호출하게됩니다. –

답변

1

keyDown: 메서드는 특정보기에만 호출되며 그 것이 내가 생각하는 하위보기입니다. 당신은 당신의 응용 프로그램에 대한 모든 키 입력을해야하는 경우 - NSEvent 클래스 메소드 확인 : 그것은 엑스 코드 설명서에

+ (id)addLocalMonitorForEventsMatchingMask:(NSEventMask)mask 
            handler:(NSEvent* (^)(NSEvent*))block 

읽기. 눈 표범에 온 것 같아.

+2

리스폰 더 체인을 이해하지 못하는 경우이 작업은 완전히 과잉입니다. –

0

- (void) keyDown : (NSEvent *) 이벤트를 사용했지만 어떤 결과도 얻지 못했습니다.

"사용중"이란 무엇입니까?

귀하의 개체 중 하나가 인 경우에 회신 해주십시오. 즉, 응답자가되고 처리 할 키 스트로크를 누르는 것이 적절할 때마다 응답자 체인에 있어야한다는 것을 의미합니다.

키 누르기 기능에 따라 단일 사용자 정의보기에서 처리 할 수 ​​있습니다. 그렇지 않다면 아마 그것을 처리하는 윈도우 컨트롤러 여야합니다. 어느 쪽이든 적절한 시간에 이미 응답자 체인에 있어야합니다. 어떤 방법 으로든 NSView (사용자 정의보기 용) 또는 NSWindowController를 서브 클래스해야합니다.

관련 문제