我有一个NSWindow,它托管了一个WebView,它已经连接到一个脚本处理程序.
现在,当用户单击WebView上控件上的按钮时,它会在我的对象上调用Objective C方法.
在这种特定情况下,按钮的操作是尝试关闭托管WebView的窗口
[[webView窗口]关闭];
这通常有效,但有时我会得到一个SEGFAULT或其他一些访问冲突,因为事件循环试图将鼠标消息发送到现在被破坏的视图.
当我试图关闭窗口时,callstack很可怕,偶数循环调用了窗口调用了webView,当我尝试关闭窗口时调用了我的脚本委托.从该对象的回调中销毁对象通常是危险的,但是由于用户与它们的视图交互,我无法弄清楚应该如何安全地关闭窗口.
不是关闭,你不能尝试API
- (void)orderOut:(id)sender
只需检查您的窗口是否可见,或者是否打开该窗口
if([[webView window] isVisible]) [[webView window] orderOut:self];