gpt4 book ai didi

swift - 在按键时禁用 WKWebView "funk"声音但允许键入输入字段

转载 作者:行者123 更新时间:2023-12-05 06:18:09 25 4
gpt4 key购买 nike

我的应用程序中有一个 WKWebView,其中包含输入元素和文本区域。它还支持一些按键事件,比方说 A B C。当我在没有聚焦输入元素的情况下按下这些键时,我可以听到 macOS 的 funk 系统声音——WebApp 也通过按键触发命令。

当我尝试在 Swift 中使用 localMonitor 禁用 funk 声音时,“捕获”这些键上的按键,它们不再“funk”,但在输入字段或文本区域中键入时它们也不起作用。所以他们完全被禁用了。

如何在我的 WebView 中防止放克声音(可能完全针对所有按键)同时使用这些键(所有键)?

这是我测试过的:

   override func viewDidLoad() {
super.viewDidLoad()
// ...
NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
if self. keyDownPressed(with: $0) {
return nil
} else {
return $0
}
}
}


func keyDownPressed(with event: NSEvent) -> Bool {

print("caught a key down: \(event.keyCode)")

if event.keyCode == 48 { return true }
if event.keyCode == 34 { return true }
if event.keyCode == 38 { return true }
if event.keyCode == 40 { return true }
if event.keyCode == 4 { return true }
if event.keyCode == 1 { return true }
if event.keyCode == 3 { return true }
if event.keyCode == 32 { return true }

return false
}

最佳答案

您是否只尝试过常规的 keyDown?输入字段应该仍然可以正常工作。

override func keyDown(with event: NSEvent) {
if [48, 34, 40, 4, 1, 3, 32].contains(event.keyCode) {
// no funk
} else {
super.keyDown(with: event)
}
}

关于swift - 在按键时禁用 WKWebView "funk"声音但允许键入输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61373696/

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