如何解决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 举报,一经查实,本站将立刻删除。