如何启用使用键盘快捷键粘贴到 SwiftUI macOS 代理应用程序中

Kla*_*ler 8 macos agent swift swiftui

我正在使用 Swift 5 和 SwiftUI 创建一个应用程序。该应用程序作为状态栏应用程序运行(LSUIElement 为 true)。我使用 SwiftUI 创建了一个简单的首选项窗口,其中包含几个TextField.

但是,我不知道如何使用 Cmd+V 启用粘贴到这些字段中。该应用程序是一个代理,它从未真正激活,因此即使聚焦于首选项窗口,应用程序的菜单栏也不会显示(在状态栏的左侧)。

这就是我创建窗口的方式:

let hostingController = NSHostingController(rootView: PreferencesView())
preferencesWindow = NSWindow(contentViewController: hostingController)
preferencesWindow!.center()
preferencesWindow!.makeKeyAndOrderFront(nil)
NSApp.activate(ignoringOtherApps: true)
Run Code Online (Sandbox Code Playgroud)

尝试使用 Cmd+VI 进行粘贴时,会听到 macOS 的“禁止”提示音。右键单击该字段允许我从弹出菜单中选择“粘贴”。

小智 0

我也有同样的麻烦,然后我发现这些快捷方式是由“编辑”菜单项提供的。所以你可以尝试恢复 Main.storyboard 中的默认菜单。