Cocoa 应用程序中的 WKWebView 单击时无法获取光标

WKWebView in Cocoa app can't get the cursor on click

我创建了一个简单的测试应用程序,其中一个字段是 NSTextField,另一个字段是 <textarea> 而不是 WKWebView。我可以单击进入 Web 视图一次,但如果我返回 NSTextField,我将无法再次将光标返回到 Web 视图。

这里有一个演示:

如您所见,Web 视图在某种程度上仍然具有交互性,只是不能再次成为(我假设)第一响应者。

WKWebView 和响应链有什么奇怪的地方吗?我怎样才能让 WebWebView 表现得像一个正常的 NSTextField?

Here is a sample project 内置于 Xcode 11.5 中,如果您想尝试一下。

如何解决这个问题?

问题似乎与 textarea 有关,使用 content editable <body contenteditable="true"></body> 似乎有效。

使用 textarea 的解决方法是像这样子类化 WKWebView

- (void)mouseDown:(NSEvent *)event
{
    [super mouseDown:event];
    [[self window] makeFirstResponder:self];
}