2014-04-12 7 views
0

NSOutlineView에서 NSTableCellView 내부에 NSTextField가 있습니다. 사용자가 편집을 마칠 때 발생하는 controlTextDidEndEditing : 알림을 수신 대기합니다. 그러나 필자의 경우이 알림은 사용자가 타이핑을하는 중에도 발생하거나 타이핑에 두 번째 긴 일시 중지가 발생합니다. 이것은 기괴한 것 같습니다. 동일한 뷰에서 NSTextField를 테스트했지만 NSOutlineView 외부에서는이 방법으로 동작하지 않습니다. 사용자가 Tab 또는 Enter 키를 눌렀다면 (예상대로) controlTextDidEndEditing 만 호출합니다.NSTextField controlTextDidEndEditing : NSOutlineView 내에서 편집 중 호출 됨

Enter 키 또는 Tab 키를 누르지 않으면 NSTextField가 controlTextDidEndEditing을 보내지 못하도록 할 수 있습니까?

답변

1

이것에 대한 해결책을 찾았

- (void)controlTextDidEndEditing:(NSNotification *) notification { 

    // to prevent NSOutlineView from calling controlTextDidEndEditing by itself 
    if ([notification.userInfo[@"NSTextMovement"] unsignedIntegerValue]) { 
     ....