我是objective-c的新手。我想暂停主线程的执行,直到我的应用程序keyWindow已关闭。我试过通过以下代码
[mywindow performSelector:@selector(isVisible:) onThread:[NSThread currentThread] withObject:self waitUntilDone:YES];
它保持执行。关闭mywindow主线程后不执行(暂停在同一行)。我该怎么办?
答案 0 :(得分:1)
这是不可能的;这是一个悖论:负责窗口关闭的代码必须在主线程上发生(因为它是AppKit / UI代码)。如果阻止主线程等待窗口关闭,则窗口永远不会关闭,因为主线程被阻塞。在逻辑上关闭窗口之前阻止主线程的所有尝试都会减少死锁。