2013-05-23 3 views
0

objC 및 게임 프로그래밍에 대한 전반적인 내용이 매우 유용합니다. 많은 질문이 있으면 실례지만 [self facepalm];objC NSView에서 다른 obj로 키 이벤트 보내기

게임 루프 (NSObject)를 컨트롤러로 설정하려고합니다. 또한 Interface Builder (MainMenu.xib)를 통해 Window에 연결된 NSOpenGLView가 있습니다. 루프는 모든 키보드 입력을 처리하고 뷰에서 그릴 내용을 관리해야합니다.

키 이벤트를 - (void) keyDown : (NSEvent *) theEvent로 볼 수 있다는 것을 알았습니다. 이 입력을 컨트롤러/루프에 어떻게 전달할 수 있습니까?

키 입력을 루프에 보내려면 postNotificationName과 함께 NSNotificationCenter를 사용했습니다. 그러나 그것은 느리고 'laggy'인 것처럼 보인다. 이것이 올바른 방법 일 수는 없습니다.

팁이 유용 할 것입니다.

답변

0

same way NSControl uses to deliver events을 사용하십시오. 아니면 iOS의 UIControl'saddTarget:action:forControlEvents:입니다.

아이디어는 일부 개체를 해당 이벤트에 "수신기"(대상)로 등록하고 이벤트가 트리거 될 때 호출해야하는 메서드 (작업)를 등록하는 것입니다. 보기에 대한 일부 프로토콜을 선언하고 이벤트를 수신해야하는 각 클래스가이를 준수하도록함으로써 이벤트를 단순하게 만들 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는이 방법을 시험해 볼 것이다, 유망한 소리 :) – ilovemondays

관련 문제