Текст заполнителя NSTextField не отображается, если редактирование

Я устанавливаю текст-заполнитель моего NSTextField в Interface Builder, но текст-заполнитель не отображается, пока я не щелкнул внутри текстового поля, чтобы отредактировать его. У кого-нибудь еще такая проблема?

Спасибо

EDIT: Скриншоты. Вот как выглядит поле, когда я его не редактирую:

Не редактировать http://cl.ly/2a0R1h1p2A082g1t1b3q/Screen_Shot_2011-04-01_at_6.51.25_PM.png

И вот как это выглядит, когда я его редактирую:

Редактирование http://cl.ly/1c2d1U233R3j3k0M2E2Q/Screen_Shot_2011-04-01_at_6.51.32_PM.png

Ответы

Ответ 1

Вы пробовали установить заполнитель через код? например, что-то вроде этого:

    [[textField cell] setPlaceholderString:@"hello"];

Ответ 2

Связали ли вы данные NSTextField в Interface Builder? Если это так, вы должны установить "Множитель с несколькими значениями", "Нет селекционера" и "Null Placeholder" на вкладке "Связи" в вашем инспекторе "Утилиты". Пока вы на нем, вы также можете установить "No Applicable Placeholder".

Ответ 3

Вот как я решаю эту проблему:

  • Подкласс NSTextFieldCell;
  • Отменить - (void)drawWithFrame:(NSRect)cellFrame, - (void)drawInteriorWithFrame: (если требуется) метод NSCell и поместить весь код чертежа в эти методы. Не забудьте вызвать super реализацию;
  • Установите Class поле NSTextFieldCell в Interface Builder в ваш подкласс;
  • Установить border в .xib файл на border (я не знаю имя этой границы);
  • Отключить Draw Background;