gpt4 book ai didi

objective-c - 全屏(信息亭)带有 WebView 的 NSWindowController 需要先单击才能单击任何链接

转载 作者:行者123 更新时间:2023-12-03 17:46:53 25 4
gpt4 key购买 nike

我正在创建一个应用程序,其功能之一是自助服务终端网络浏览器。

Web 浏览器位于 NSWindowController 中,发生了一件奇怪的事情:加载 NSWindowController 时,我将 WebView url 设置为默认 URL 并开始加载页面。一切都加载正常等,但在单击窗口上的任何位置之前,我无法与 WebView 交互(即单击加载页面中的链接)。之后一切工作正常。看起来窗口缺少“焦点”,单击窗口后它获得焦点,并且当鼠标悬停在链接等上时我看到光标发生变化...

当我不使用[[self.window contentView] EnterFullScreenMode:[NSScreen mainScreen] withOptions:nil];时这不是问题

窗口中也有几个按钮,但它们仅在第一次单击时起作用,而无需聚焦。

无论如何,这里是完成大部分工作的代码:

NSApplicationPresentationOptions options =
NSApplicationPresentationHideMenuBar|NSApplicationPresentationHideDock|
NSApplicationPresentationDisableHideApplication|
NSApplicationPresentationDisableProcessSwitching|
NSApplicationPresentationDisableAppleMenu| NSApplicationPresentationDisableForceQuit;

[NSApp setPresentationOptions:options];
[[self.window contentView] enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];


[self.webView setFrameLoadDelegate:self];
[self.webView setPolicyDelegate:self];

NSString *url = [[NSString alloc] initWithString:@"https://www.google.com"];
[[self.webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];

最佳答案

我假设你的 webView 在你点击它之前不是第一个响应者。您可以使用

更改此设置
[[self window] makeFirstResponder:webView];

此外,[self.window makeKeyAndOrderFront:self];[NSApp activateIgnoringOtherApps:YES]; 也可以根据具体情况进行更改。如果这没有帮助,您可能需要在最初使用时根据延迟进行调用。

[self performSelector:@selector(myDelayedActivateFunction) withObject:nil afterDelay:0.0];

关于objective-c - 全屏(信息亭)带有 WebView 的 NSWindowController 需要先单击才能单击任何链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53092473/

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