问题描述
|
我正在我的应用程序中运行模式窗口,该窗口运行正常。但是,问题似乎是关闭了窗口。
窗口关闭时,应用程序至少需要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:
方法的最后一行似乎是向前发送应用程序所需要的...希望有一定用处!
托德