Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在框架内等待窗口关闭?_Objective C_Macos_Frameworks_Nswindowcontroller - Fatal编程技术网

Objective c 如何在框架内等待窗口关闭?

Objective c 如何在框架内等待窗口关闭?,objective-c,macos,frameworks,nswindowcontroller,Objective C,Macos,Frameworks,Nswindowcontroller,我必须在一个框架中创建一个函数,打开一个窗口,窗口上有一个单选组和一个按钮。当我点击按钮时,功能应打印出所选的收音机。我正在使用带有xib文件的NSWindowController来显示表单 问题是,代码在显示窗口后继续运行。 因此,我尝试了一个while循环,在我的窗口中有一个属性,当我单击按钮时设置该属性。 但它不起作用,因为我认为窗口运行在同一线程中 MyWindowController windowController = [[MyWindowController alloc i

我必须在一个框架中创建一个函数,打开一个窗口,窗口上有一个单选组和一个按钮。当我点击按钮时,功能应打印出所选的收音机。我正在使用带有xib文件的NSWindowController来显示表单

问题是,代码在显示窗口后继续运行。 因此,我尝试了一个while循环,在我的窗口中有一个属性,当我单击按钮时设置该属性。 但它不起作用,因为我认为窗口运行在同一线程中

    MyWindowController windowController = [[MyWindowController alloc initWithWindowNibName:@"MyWindow"];
    [windowController showWindow:self];
    while([windowController buttonClicked] == 0);
    NSLog("Radio %@ is selected!", [windowController selectedRadio]);
你知道如何等待窗口关闭然后读取数据吗?
希望您能帮助我。

您可以将自己添加为窗口的代表,并收听窗口关闭通知。这样,当窗户关闭时,你会得到通知

请注意,您不是在等待窗口toi关闭,如果不阻塞runloop,这将无法工作,但您只是在调用委托方法之前处于空闲状态。还请注意,窗口控制器应自动成为窗口的委托,因此也可用于此操作