微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NSWindow模态问题

如何解决NSWindow模态问题

| 我正在我的应用程序中运行模式窗口,该窗口运行正常。但是,问题似乎是关闭了窗口。 窗口关闭时,应用程序至少需要20秒才能继续(我在启动时显示模式窗口),但是如果我单击其停靠图标,它将立即继续。 这是我关闭模式窗口的方法
[NSApp stopModal];
[updaterWindow orderOut:self];
[updaterWindow close]; 
我已经尝试了各种方法来使应用程序更快地运行,例如手动切换到主运行循环并直接与主窗口对话(要求它成为键窗口),所有这些都无法正常工作。与以前一样,单击停靠图标会等待20秒或立即加载。 什么会引起这样的事情?我真的很困惑。 编辑: 我的模态窗口实际上是以非常简单的方式创建的。我将窗口作为模式运行:
[NSApp runModalForWindow:updaterWindow];
完成工作后,我将其关闭
[NSApp stopModal];
[updaterWindow orderOut:self];
[updaterWindow close];
窗口消失了,但是需要单击停靠图标或屏幕上的任何位置才能继续应用。     

解决方法

目前,我正在我的应用程序中执行类似的操作:我有一个IBAction方法来调用模式窗口:
-(IBAction)showMyModalWindow:(id)sender {
    [theModalWindow makeKeyWindow];
    NSInteger retVal = [NSApp runModalForWindow:theModalWindow];
    [theModalWindow close];
    //continue and do somethin according the value in retVal
    [[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
}
在这种情况下,
theModalWindow
在其自己的笔尖文件中具有一个NSObject,该对象处理ok和cancel按钮以消除
theWindow
,例如,这是cancel按钮回调:
-(IBAction)cancelButton:(id)sender
{
    [NSApp stopModalWithCode:errAuthorizationCanceled];
}
在我的情况下,
showMyModalWindow:
方法的最后一行似乎是向前发送应用程序所需要的...希望有一定用处! 托德     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。