Выполните NSRunLoop в программе командной строки Какао

Действительно ли возможно инициализировать a NSRunLoop не загружая файлов NIB (т.е. без вызова NSApplicationMain())?

Спасибо.

21
задан Jon Gauthier 22 May 2013 в 04:37
поделиться

2 ответа

Да; Вы можете написать свой собственный основной метод и запустить NSRUNLOOP , не возвращаясь из NSApplicationMain .

Посмотрите на эту ссылку ; Этот парень использует NSRUNLOOP в своем главном методе, он не загружает файлы NiB, но он должен идти с NSRUNLoops .

12
ответ дан 29 November 2019 в 06:36
поделиться

Решение состоит в том, чтобы вызвать NSApplication вручную. Создайте свой прикладной делегат сначала, чем заменить вызов NSApplicationMain () в Main.m со следующим:

AppDelegate * delegate = [[AppDelegate alloc] init];

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSApplication * application = [NSApplication sharedApplication];
[application setDelegate:delegate];
[NSApp run];

[pool drain];

[delegate release];

Делегат будет вызван при готовности, не требуя нибора

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
15
ответ дан 29 November 2019 в 06:36
поделиться