【问题标题】:macOS & SwiftUI 2: simplest way to turn off beep on keystrokemacOS 和 SwiftUI 2:关闭按键提示音的最简单方法
【发布时间】:2021-07-28 07:40:14
【问题描述】:

以下简单的 macOS 应用是用 SwiftUI 2.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”)时发出错误提示音。抑制这种哔声的最简单方法是什么?


可以在here 找到说明这一点(以及答案)的 Xcode 项目。


在 SO 上有很多 older related questions,但没有一个是专门针对在 Swift 2.0 中执行此操作的。

【问题讨论】:

    标签: macos swiftui keyboard beep


    【解决方案1】:

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

    struct ContentView: View {
      var body: some View {
        Text("Hello, silence!").padding()
      }
    
      init() {
        NSEvent.addLocalMonitorForEvents(matching: .keyDown) { _ in return nil }
      }
    }
    

    这项技术的灵感来自answer

    【讨论】:

      猜你喜欢
      • 2013-04-11
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多