Исчезающий текст NSTextField - PullRequest
4 голосов
/ 03 ноября 2011

У меня есть пользовательское представление в файле .xib, которое я использую как contentViewController для MAAttachedWindow.В представлении есть несколько NSTextField с.

Когда я открываю MAAttachedWindow в первый раз, все в порядке.Текст отображается во всех соответствующих текстовых полях.Затем, если я закрою окно (которое устанавливает его на nil) и затем вызову его снова (который повторно инициализирует, используя то же пользовательское представление, что и contentViewController), последнее текстовое поле firstResponder теперь будет пустым.*

Странно то, что если я нажимаю «пустое» текстовое поле, оно показывает правильный текст.Это может быть отредактировано, и ведет себя соответствующим образом, пока это текстовое поле имеет фокус.Как только что-то становится firstResponder, текст снова исчезает.

Обновления :

  • Изменение цвета не изменило вышеупомянутое поведение.
  • Цвет текста не изменяется в течение этого процесса.
  • Текст заполнителя также зависит от вышеупомянутого поведения.
  • В течение этого процесса не возникает ошибок.
  • Это не случается с NSSecureTextField с.

Ответы [ 4 ]

4 голосов
/ 19 ноября 2011

Впервые я столкнулся с этой проблемой около 5 лет назад с дополнительным представлением NSSavePanel. Решение, которое я нашел, состояло в том, чтобы переместить первого респондента на саму панель до ее закрытия. Вот мой точный метод:

- (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];
}
2 голосов
/ 06 ноября 2011

Я понял!

Мне просто нужно было явно удалить viewController из superview перед закрытием (и последующим освобождением) MAAttachedWindow.

2 голосов
/ 03 ноября 2011

Попробуйте изменить цвет текста текстового поля на красный (или любой другой цвет), вы можете получить то, что происходит здесь.

0 голосов
/ 04 ноября 2011

Попробуйте оставить все первые респонденты перед установкой окна на ноль.

...