Macos 马科斯公司;Swiftui2:最简单的按键关闭蜂鸣音的方法

Macos 马科斯公司;Swiftui2:最简单的按键关闭蜂鸣音的方法,macos,swiftui,keyboard,beep,Macos,Swiftui,Keyboard,Beep,以下简单的macOS应用程序是用Swiftui2.0编写的 import SwiftUI @main struct TempApp: App { var body: some Scene { WindowGroup { ContentView() } } } struct ContentView: View { var body: some View { Text("Hello, beep!").padding() } } 当在前台时,此

以下简单的macOS应用程序是用Swiftui2.0编写的

import SwiftUI

@main
struct TempApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}

struct ContentView: View {
  var body: some View {
    Text("Hello, beep!").padding()
  }
}
当在前台时,此应用程序将在某些按键时发出错误蜂鸣音(如“a”)。抑制这种蜂鸣音的最简单方法是什么


可以找到一个Xcode项目来说明这一点(以及答案)



在Swift 2.0中,有很多这样做,但没有一个是专门针对这一点的。

您可以通过在顶层为
.keyDown
事件添加本地监视器来抑制蜂鸣音。这可以在
ContentView.init()
中简单地完成,如下所示:

struct ContentView: View {
  var body: some View {
    Text("Hello, silence!").padding()
  }

  init() {
    NSEvent.addLocalMonitorForEvents(matching: .keyDown) { _ in return nil }
  }
}
这项技术的灵感来源于此