【问题标题】:NSAlert duplicates "help" menuNSAlert 重复“帮助”菜单
【发布时间】:2015-02-19 10:07:16
【问题描述】:

我的项目中有一个非常简单的模态代码:

/*!
 * @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 中运行良好。

你知道为什么会这样吗?

抱歉,我在 Stack Overflow 上找不到类似的东西。我测试了,只有在显示消息时才会发生,所以我认为这段代码是罪魁祸首。

谢谢!

【问题讨论】:

    标签: cocoa osx-mavericks nsalert


    【解决方案1】:

    这可能是因为您在 initawakeFromNibapplicationWillFinishLaunching 内做自己的事情。

    在这种情况下,在 applicationDidFinishLaunching 内做你的事情可能会有所帮助。

    看到这个:http://www.cocoabuilder.com/archive/cocoa/6200-two-help-menus-why.html

    【讨论】:

    • 嗯,这很棘手.. 因为查看调试导航器,似乎 persistentStoreCoordinator: 正在由 managedObjectContext: 调用,它是由主 nib/xib 文件中的绑定调用的loadNib 某处的函数。所以我假设接口绑定在applicationDidFinishLaunching 之前加载(这是有道理的),所以我最好不要在那里使用我的NSAlert。我会试着把它移到其他地方,我稍后会在这里更新,谢谢!
    猜你喜欢
    • 2016-10-04
    • 2019-11-22
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多