【发布时间】:2011-09-26 19:46:52
【问题描述】:
我有一个用 objetive-c Cocoa 编写的 Mac OS X 应用程序。您可以在this previous question 中看到大部分代码。本质上,您单击主窗口(应用程序委托)上的一个按钮,它会打开另一个窗口,用户可以在其中输入信息。
在以下代码中(当用户在应用主窗口中按下按钮时调用)
- (IBAction)OnLaunch:(id)sender {
MyClass *controllerWindow = [[MyClass alloc] initWithWindowNibName:@"pop"];
[controllerWindow showWindow:self];
NSLog(@"this is a log line");
}
在我调用showWindow 后,NSLog 行立即获取打印机。有什么方法可以等到controllerWindow 关闭后再继续 NSlog?
原因是用户在我打开的新窗口中设置了一个值,我需要在同一个OnLaunch 上收集该值,所以我需要等待。
我知道模态窗口在 Mac 中是不好的形式,但我无法控制此功能。
我试过了
[NSApp runModalForWindow:[controllerWindow window]];
然后将弹出窗口设置为
[[NSApplication sharedApplication] runModalForWindow:popupwin];
它可以工作,但是焦点不再传递到主窗口 谢谢!
【问题讨论】:
-
我会回答我自己的问题:答案是Here
标签: objective-c macos cocoa