2015-02-19 2 views
0

У меня есть очень простой код модальный в моем проекте:NSAlert дублирует меню «помощь»

/*! 
* @method  popUpDialog: 
* @abstract Triggers a pop-up window. 
*/ 
- (void)popUpDialog:(NSString *)prompt { 
    NSAlert * alert = [[[NSAlert alloc] init] autorelease]; 
    [alert setAlertStyle:NSInformationalAlertStyle]; 
    [alert setMessageText:@"Message"]; 
    [alert setInformativeText:prompt]; 
    [alert runModal]; 
} 

Я использую это в методе - (NSPersistentStoreCoordinator *)persistentStoreCoordinator; предупредить пользователей миграция прошла успешно. Затем он дублирует меню справки. Кажется, это происходит только с Маверикс. Мое приложение работает в Snow Leopard просто отлично.

Doubled help

Любые идеи, почему это происходит?

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

Спасибо!

ответ

0

Это может происходить из-за того, что вы делаете свою вещь в пределах, awakeFromNib, или applicationWillFinishLaunching.

В этом случае вместо этого может помочь ваша вещь в пределах applicationDidFinishLaunching.

Смотреть это: http://www.cocoabuilder.com/archive/cocoa/6200-two-help-menus-why.html

+0

Ну, это сложно .. потому что, глядя на отладки навигатора, кажется 'persistentStoreCoordinator:' вызывается с помощью 'managedObjectContext:', который вызывается с помощью привязки в основном nib/xib из функции 'loadNib' где-нибудь. Поэтому я предполагаю, что привязка интерфейса загружается до 'applicationDidFinishLaunching' (что имеет смысл), поэтому мне лучше не использовать мой NSAlert. Я попробую переместить его в другом месте, я обновлю здесь позже, спасибо! – Apollo

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