2011-11-03 3 views
4

MAAttachedWindowcontentViewController으로 사용하는 .xib 파일에 사용자 지정보기가 있습니다. 보기에는 여러 개의 NSTextField이 있습니다.Vanishing NSTextField Text

처음으로 MAAttachedWindow을 열면 모든 것이 정상입니다. 모든 관련 텍스트 필드에 텍스트가 나타납니다. 그런 다음 창을 닫고 (이 값을 nil으로 설정 한 후) 다시 호출하면 (다시 초기화하면 contentViewController과 동일한 사용자 정의보기를 사용하여) 마지막 firstResponder 텍스트 필드가 비어있게됩니다.

이상한 점은 "빈"텍스트 필드를 클릭하면 올바른 텍스트가 표시된다는 것입니다. 이것은 편집 할 수 있으며이 텍스트 필드에 포커스가있는 한 적절히 동작합니다. 다른 것이 firstResponder이되는대로 텍스트가 다시 사라집니다. 상기 동작을 변경하지 않은 색상 변경

  • :

    업데이트

    .

  • 이 과정에서 텍스트 색상이 변경되지 않습니다.
  • 자리 표시 자 텍스트 또한 앞에서 설명한 동작이 적용됩니다.
  • 이 과정에서 오류가 발생하지 않습니다.
  • NSSecureTextField s는 발생하지 않습니다.

답변

2

알았어!

나는 을 닫고 (이후 할당을 취소하기 전에) superview에서 명시 적으로 제거해야했습니다. MAAttachedWindow.

2

여기에서 일어날 수있는 텍스트 텍스트의 색상을 빨간색 또는 다른 색상으로 변경해보십시오.

+0

좋지 않습니다. 내 질문에 업데이 트를 참조하십시오. –

0

창을 nil로 설정하기 전에 모든 첫 번째 응답자를 사퇴하십시오.

+0

나는 this'd 일을 확실히 생각했다. 그러나 좋지 않아. 그것은 'firstResponder' 문제가 아닌 텍스트 문제입니다. –

4

처음 NSSavePanel의 액세서리보기가있는이 문제 about 5 years ago이 발생했습니다. 내가 찾은 솔루션은 닫히기 전에 첫 번째 응답자를 패널 자체로 이동하는 것이 었습니다. 정확한 방법은 다음과 같습니다.

- (void)windowDidEndSheet:(NSNotification *)notification 

    NSSavePanel *savePanel = [(XSDocument *)[self document] savePanel]; 
    if (!savePanel) 
     return; 
    // this fixes a bug where on next opening one of accessory view's text field will be blank and behave strangely 
    [savePanel makeFirstResponder:savePanel]; 
} 
+0

고마워요! 참으로 짜증나는 버그. – FogleBird