gpt4 book ai didi

cocoa - 在模态 NSWindow 中使用 WebView 不起作用?

转载 作者:行者123 更新时间:2023-12-03 16:16:31 30 4
gpt4 key购买 nike

您应该如何将 WebKit 的 WebView 与模态对话框一起使用?

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

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

最佳答案

WebView 仅适用于主循环,因此在这种情况下不配合。一种解决方案是自己运行模态 session 并手动保持主循环处于事件状态(类似于建议的 here )。例如:

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 负载。

关于cocoa - 在模态 NSWindow 中使用 WebView 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4164407/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com