Какао-приложение без окон - PullRequest
5 голосов
/ 22 июля 2011

Я полный новичок в Objective-C и Какао.

Я хотел бы создать приложение без окон, которое просто показывает NSStatusItem в системном трее. Лоток работает нормально, однако есть одна проблема.

По какой-то причине мое приложение автоматически создает для меня окно, которое мне не нужно.

Я думал, что это было вызвано автоматическим шаблоном Interface Builder, созданным при создании приложения в XCode, поэтому я удалил файл .nib из проекта. Однако окно все еще создается.

Единственные строки, которые содержат ссылку на окно, находятся в заголовке:

NSWindow *window;
@property (assign) IBOutlet NSWindow *window;

и в файле реализации:

@synthesize window;

Оба были добавлены автоматически, я не писал это.

Как мне просто остановить приложение от создания окна? Я даже пытался удалить все ссылки на window из кода, включая NSWindow *window, но окно все равно было создано.

Мое временное исправление заключается в вызове [window close]; в приложении, но наверняка есть лучший способ?

Ответы [ 3 ]

9 голосов
/ 22 июля 2011

Я подозреваю, что ничто в вашем коде не создает окно. Когда вы создаете новое приложение Cocoa Xcode, Xcode устанавливает XIB с вашим интерфейсом для вас. Откройте MainMenu.xib (должен быть в разделе Ресурсы) в конструкторе интерфейса и удалите окно, которое он выдает по умолчанию.

4 голосов
/ 22 июля 2011

Если вы не хотите показывать окно, вы можете запустить приложение в фоновом режиме. Это остановит окно, чтобы появиться.

Чтобы запустить приложение в фоновом режиме, установите YES в «Приложение только для фона» в файле PLIST вашего приложения

0 голосов
/ 23 марта 2013

Вернуть false в методе windowNibName вашего подкласса NSDocument.

...