微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

macOS 和 SwiftUI 2:关闭按键提示音的最简单方法

如何解决macOS 和 SwiftUI 2:关闭按键提示音的最简单方法

以下简单的 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 中执行此操作的。

解决方法

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

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

  init() {
    NSEvent.addLocalMonitorForEvents(matching: .keyDown) { _ in return nil }
  }
}

这项技术的灵感来自于这个answer

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。