gpt4 book ai didi

html - 键入时 WebView 错误声音(Swift、Cocoa)

转载 作者:行者123 更新时间:2023-11-28 15:25:49 24 4
gpt4 key购买 nike

我最近制作了一个简单的 macOS 应用程序,它从 WebKit WebView(新的,不是旧版)中的 bundle 加载 html 页面,但我注意到当我在页面中键入一些键(不是在输入框中,我的意思是 使用 javascript 处理的正文按键)播放错误声音。我想知道这个问题是否有解决方案。

我也可能会说,如果我用 Safari 打开 html 页面完美并且内置检查器控制台没有错误,也没有播放错误声音(这可能会告诉我们知道问题出在我在应用程序中缺少的东西。

这是我的 Swift 代码(显然是 App Delegate):

@IBOutlet weak var contentView: WebView!

func applicationDidFinishLaunching(_ aNotification: Notification) {

let path = Bundle.main.path(forResource: "index", ofType: "html", inDirectory: "HTML_Content")
let url = URL(fileURLWithPath: path!)
let request = URLRequest(url: url)
contentView.mainFrame.load(request)

}

我的 HTML 代码(完美运行)[index.html]:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery-1.12.0.js"></script>
<script type="text/javascript" src="js/main.js"></script>
</head>
<body>
<h2 id="text"></h2>
</body>
</html>

我的 JavaScript/jQuery 代码 [js/main.js]:

$(document).keypress(function(e) {

var text = $('#text').text();

if (e.which == 8) {
if (text.length != 0) {
text = text.slice(0, -1);
$('#text').text(text);
}
} else if ('abcdefghijklmnopqrstuvwxyz1234567890 '.indexOf(
String.fromCharCode(e.which).toLowerCase()) != -1) {

$('#text').text(text + String.fromCharCode(e.which));

}

});

有人可以帮我解决吗?

最佳答案

我终于明白为什么应用程序给我错误的声音了:

WebView 需要对其内容执行关键等效

默认情况下它实际上不能执行它,但我强制它使用带有此覆盖的自定义类,排除快捷键(否则我将无法使用它们):

swift 4:

import WebKit

class WebViewController: WebView {

override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)

// Drawing code here.
}

override func performKeyEquivalent(with event: NSEvent) -> Bool {
if event.modifierFlags.contains(.command) ||
event.modifierFlags.contains(.control) ||
event.modifierFlags.contains(.shift) ||
event.modifierFlags.contains(.option) {
return false
}
return true
}

}

然后我使用元素检查器的自定义类属性将自定义类连接到 xib 元素

enter image description here

最后,声音消失了。

关于html - 键入时 WebView 错误声音(Swift、Cocoa),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45264602/

24 4 0
文章推荐: html - 如何在基于 html 的网站中放置代码片段?
文章推荐: javascript - 隐藏多个 div,直到鼠标悬停在各个链接上,然后显示每个
文章推荐: javascript - 如何在表单上执行 php 脚本后显示成功消息
文章推荐: css - 导致
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com