2016-10-05 3 views
0

사용자 지정 NSTextView에서 Enter 키를 검색하려고하는데 (NSTextField 완료 목록에서) 작동하도록 설정할 수 없습니다.사용자 지정 NSTextView 완료 목록에서 누른 키 확인 검색

내 인터페이스 :

- (BOOL)textView:(NSTextView *)textView doCommandBySelector (SEL)commandSelector 
    { 

을하지만이 호출되지 않습니다 :

@interface PaddedTextView : NSTextView <NSTextViewDelegate> 

내가 구현합니다.

옵션을 선택한 후 입력 키를 누르면 완료 목록이 사라집니다.

는 I도 구현 :

- (void)keyDown:(NSEvent *)event 

과 알파 숫자 키 이벤트를 감지하지만 키를 입력하지 않습니다.

나는 또한 Shift 키를 캡처하기 위해 flagsChanged를 구현했으며 이것이 작동합니다.

사용자 지정 NSTextField, NSTextFieldCell 및 NSTextView를 사용하고 있습니다.

나는 완료 항목을 선택하고 공격하면 값이 NSTextField있는 컨트롤에 삽입됩니다 키 입력하지만이 경우 작업을 수행 할 내가 그것을 감지 할 수 ...

어떤 도움 감사합니다. 고마워

답변

-1

나는 완료 목록 구현에 대해 잘 모르겠다. 그러나 적어도 일반적인 NSTextView에서는 enter 키를 누를 때 insertNewline:(id)sender이 호출됩니다.

+0

답장을 보내 주셔서 감사합니다. 문제는 NSTextView 자체가 아닌 완료 목록에서 Enter 키를 캡처하려는 것입니다. 그러나 나는 어떤 계급인지 모른다. 나는 complete : nil을 호출하고리스트가 나타난다. TextView는이 목록에서 키 이벤트를 받지만 자신의 엔터 키를 처리한다고 생각합니다. – jon34560

0

내 문제에 대한 해결책을 찾았습니다. (업데이트 :이 작동하지 않습니다) :

-(void) insertCompletion:(NSString *)word forPartialWordRange:(NSRange)charRange movement:(NSInteger)movement isFinal:(BOOL)flag { 
    if(movement == NSReturnTextMovement){ 
     NSLog(@"Enter key pressed..."); 
    } 
    [super insertCompletion:word forPartialWordRange:charRange movement:movement isFinal:flag]; 
} 

업데이트 : 사실이 항상 작동하지 않습니다

나는 내를 NSTextView 구현에 다음을 추가했다. 이 함수는 완료 옵션이 선택 될 때만 호출됩니다. 텍스트 필드에 입력하고 Enter 키를 누르면 해당 키 이벤트를 감지 할 수 없으며 완료 목록 만 닫습니다. 여전히 실제 솔루션을 찾고 있습니다.