2013-07-22 4 views
5

Запись приложения в XCode для OSX с использованием OSX 10.8 SDK. Все мои Windows работают нормально, пока я не использую Interface Building, чтобы избавиться от строки заголовка в nib (снимите флажок Title Bar в инспекторе атрибутов элемента window). Окна все еще отображаются, но все подпункты отключены. Я больше не могу вводить текст, а панели обработки все серые.Subviews становятся отключенными, когда строка заголовка скрыта

Кто-нибудь знает, почему это происходит? и как иметь Окно без заголовка, но со всеми включенными subviews?

Вот что мой взгляд выглядит с заголовком: enter image description here

А вот как это выглядит без: enter image description here

Как вы можете видеть, все отключено.


Update

Кто-то спросил о коде для отображения окна. В этом примере я не использовал никакого кода. Для двух экранов выше приведены следующие шаги:

  1. Создано новое приложение для какао с использованием XCode. (Автоматически создает xib).
  2. Перетащил два элемента управления (текстовое поле и индикатор выполнения) в существующее окно.
  3. Ran, снял с экрана
  4. Закрыто и отмечено атрибут Title Bar для окна.
  5. Перезагрузили приложение. Взял второй снимок экрана.
+0

Как вы избавляетесь от заголовка в своих окнах? –

+0

Интерфейс Builder. Я снимаю флажок «Проверка заголовка» в инспекторе атрибутов объекта NSWindow. – Jason

+0

Пожалуйста, покажите код, который вы используете для отображения окна. – trojanfoe

ответ

10

Существует ответ на этот вопрос по этой ссылке:

Xcode 4, Cocoa Title bar removing from interface builders disables textView from editing

Если вы читаете документацию для NSWindow вы можете увидеть, что методы canBecomeKeyWindow и canBecomeMainWindow вернуть NO, если нет заголовка , Подклассификация NSWindow и преодоление этих методов сделают так, что они могут стать ключевыми окнами.

Существует пример кода о том, как подклассировать эти окна на веб-сайте документации Apple или в xcode, если у вас установлена ​​документация.

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/occ/instm/NSWindow/canBecomeKeyWindow

Поиск canBecomeKeyWindow в ссылке выше и будет пример кода включен, который поможет объяснить этот процесс.

Смежные вопросы