NSApplicationDelegate предотвращает окно, если командная строка присутствует - PullRequest
0 голосов
/ 24 февраля 2011

У меня есть простое приложение с одним окном, с целевым объектом для файлов. Это отлично работает. Однако я также хочу, чтобы при запуске из командной строки они просто обрабатывали эти файлы, а не отображали окно.

Есть ли в NSApplicationDelegate метод делегата, в котором я могу запретить отображение окна, обработать файлы и выйти из приложения?

Ответы [ 3 ]

3 голосов
/ 24 февраля 2011

Вы можете установить, чтобы окно не отображалось при загрузке из файла пера .В инспекторе в настройке интерфейса есть настройка.

Затем вы можете отобразить окно, если необходимо, используя методы, описанные в этой документации .

Но это все равно покажетзначок в Dock, когда ваше приложение обрабатывает файл.

1 голос
/ 24 февраля 2011

Наиболее понятный и простой подход, который я видел, заключается в том, чтобы поместить вашу версию командной строки в отдельный исполняемый файл в виде простой программы Foundation, а затем заставить вашу программу Cocoa просто вызывать ее, обрабатывая пользовательский интерфейс. Делая это таким образом, вы избавляетесь от многих вещей, которые вам нужно обойти. Затем вы можете установить ссылки на вашу версию командной строки, где вам нравится.

Если вам не нравится использовать NSTask для этого, поместите свою логику в общую инфраструктуру и наложите поверх нее приложения с графическим интерфейсом и командной строкой.

1 голос
/ 24 февраля 2011

Вы можете запретить показ главного окна, как сказал Юджи.Также есть уведомление под названием applicationDidFinishLaunching: там вы можете обработать ваши файлы и выйти из приложения с помощью [[NSApplication sharedApplication] terminate: self];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...