나는 사용자가이 NSTextField
편집 할 때 세 가지 키 조합을 처리 할 수 있도록하려면 다르게 대답했다.NSTextField에서 <Return> + 수정 자 키를 올바르게 처리하는 방법은 무엇입니까?</p> <ul> <li>↩</li> <li>⌘↩</li> <li>⇧↩</li> </ul> <p>이 조합의 각이 될 것입니다 :
이상적으로는 IB만으로이 목표를 달성하고 싶습니다. 그러나, 나의 이해는 Cocoa가 컨트롤 하나당 하나의 액션 만 허용한다는 것이다.
IBAction
에이 보낸 작업을 바인딩하고 NSTextField
을 반환 키를 누를 때만 보내도록 설정할 수 있지만 현재 동작중인 수정 자 키를 가져 오는 방법을 찾을 수 없습니다 이벤트 객체가 아닌 (id)sender
을받습니다. 그게 가능하니?
또는 NSTextField
의 하위 클래스를 지정하고 keyDown:
을 재정의하고 수동으로 적절한 작업을 실행하는 것이 좋습니다. 그러나, 나는 이것을 IB에서 올바르게 연결하는 방법을 생각할 수 없다. (대상에 IBOutlet
을 사용할 수는 있지만 특정 방법을 연결하는 방법을 생각할 수 없습니다.) 또한이 접근법의 효율성에 대해 걱정하고 있습니다.
NSTextField
에서 특정 키 이벤트를 처리하는 일반적인 방법은 무엇입니까?
나는 사용자 정의 프로토콜을 작성하고 텍스트 필드의 서브 클래스에 출구를 가하고 순간에쪽으로 기울고 있어요 접근 :
@property (weak, nonatomic) IBOutlet id<TextFieldReturnHandler> target
다음 키를 누를 때 이벤트에서 호출 할 수 있습니다. 그래도 정말 복잡하게 보입니다.
- (IBAction)cellDidEndEditing:(id)sender;
만이 방법은 예를 들어, 리턴 키를 누를 때 호출, 그리고 싶은 경우, 사용자가 클릭 :
작업 아무튼 수정 자 플래그로 enter 명령을 호출하지 않습니다. – Astoria