NSPanel со снятой отметкой «Строка заголовка» в Interface Builder не появляется

Итак, я думал, что прикрыл свои базы, но, видимо, мне не хватает одного или двух ключевых шагов.

У меня есть NSPanel, который отображается ( makeKeyAndOrderFront: ) при нажатии NSStatusItem. Все работает отлично, но поскольку в NSPanel отображается строка заголовка, панель также можно перетаскивать. (Это нежелательно.)

На первом снимке экрана показана панель с «Строкой заголовка», включенной в Интерфейсном Разработчике, в категории «Внешний вид». (Извините за размытие, пока все еще под замком.)

First screenshot

Единственное изменение, сделанное в Interface Builder, - это снятие флажка «Строка заголовка». Затем я сохраняю и повторно запускаю, и это то, что вы видите на втором снимке экрана. Хотя появляется небольшая тень, панель - нет.

enter image description here

Что я пробовал:

  • Я создал подклассы NSPanel и после небольшого исследования вернул YES для canBecomeKeyWindow и canBecomeMainWindow , но (до создания подкласса) оба этих метода вернули NO независимо от того, использовал ли я строку заголовка или нет. Так что я не думаю, что проблема в этом.

  • Я убедился, что фрейм для NSPanel установлен правильно. У него хорошая высота, и исходная точка также установлена ​​правильно.

Редактировать: Забыл упомянуть:

Приложение представляет собой приложение только для строки меню.Обратите внимание, что на снимке экрана ниже в Info.plist была добавлена ​​дополнительная запись для обеспечения этого.

Info Plist

7
задан Craig Otis 8 October 2011 в 19:05
поделиться

0 ответов