我必须在一个框架中创建一个函数,该框架打开一个窗口,上面有一个无线电组和一个按钮。当我单击按钮时,该功能应该打印出选择了哪个无线电。我正在使用带有xib文件的NSWindowController来显示Form。
问题是,代码在显示窗口后继续运行。 所以我在我的窗口中尝试了一个带有属性的while循环,当我单击按钮时会设置该属性。 但它不起作用,因为我认为窗口在同一个线程中运行。
MyWindowController windowController = [[MyWindowController alloc initWithWindowNibName:@"MyWindow"];
[windowController showWindow:self];
while([windowController buttonClicked] == 0);
NSLog("Radio %@ is selected!", [windowController selectedRadio]);
您是否知道如何等待窗口关闭而不是读出数据? 我希望你能帮助我。
答案 0 :(得分:0)
您可以将自己添加为窗口的委托,并收听windowWillClose
通知。这样,当窗户关闭时,您会收到通知。
请注意,您没有“等待”窗口关闭,在没有阻止runloop的情况下无法工作,但是您只是闲置直到调用委托方法。另请注意,窗口控制器应自动成为窗口的委托,因此也可用于此。