当前位置:  开发笔记 > 前端 > 正文

在模态NSWindowow中使用WebView无法正常工作?

如何解决《在模态NSWindowow中使用WebView无法正常工作?》经验,为你挑选了1个好方法。

你应该如何使用WebKit的WebView与模态对话框?

[_webView setMainFrameURL:[NSString fromStdString:url]];
[_nsWindow makeKeyAndOrderFront:nil];
return [NSApp runModalForWindow:_nsWindow];

前面的代码仅适用于Mac OS 10.6.使用10.5,这不会导航到指定的URL.没有runModalForWindow,一切正常.



1> Georg Fritzs..:

WebView仅适用于主循环,因此在这种情况下不合作.一种解决方案是自己运行模态会话并保持主循环手动(类似于此处提出的).例如:

NSModalSession session = [NSApp beginModalSessionForWindow:yourWindow];
int result = NSRunContinuesResponse;

// Loop until some result other than continues:
while (result == NSRunContinuesResponse)
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    // Run the window modally until there are no events to process:
    result = [NSApp runModalSession:session];

    // Give the main loop some time:
    [[NSRunLoop currentRunLoop] limitDateForMode:NSDefaultRunLoopMode];

    // Drain pool to avoid memory getting clogged:
    [pool drain];
}

[NSApp endModalSession:session];

请注意,您可能希望使用类似的方法-runMode:beforeDate:来降低CPU负载.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有