SwiftUI中的键盘快捷键
我正在制作一个SwiftUI应用程序,我想使用菜单栏添加键盘快捷键。 我已经看过苹果的视频,但我不知道他们是如何将SwiftUI中的键盘快捷键,swift,macos,swiftui,Swift,Macos,Swiftui,我正在制作一个SwiftUI应用程序,我想使用菜单栏添加键盘快捷键。 我已经看过苹果的视频,但我不知道他们是如何将菜单.xib集成到他们的应用程序中的 #如果目标环境(macCatalyst) //马科斯 #否则 //iOS #恩迪夫 不太管用。 我试图向项目中添加菜单栏,但无法编译。你知道怎么加一个吗 但我不明白他们是如何将menu.xib集成到他们的应用程序中的 我想(我没有看过视频)他们确实在mac上实现了SwiftUI,这意味着他们没有使用Catalyst 我还面临着完全相同的问题,我
菜单.xib
集成到他们的应用程序中的
#如果目标环境(macCatalyst)
//马科斯
#否则
//iOS
#恩迪夫
不太管用。
我试图向项目中添加菜单栏,但无法编译。你知道怎么加一个吗
但我不明白他们是如何将menu.xib集成到他们的应用程序中的
我想(我没有看过视频)他们确实在mac上实现了SwiftUI,这意味着他们没有使用Catalyst
我还面临着完全相同的问题,我通过在AppDelegate中添加一个菜单项“解决”了这个问题,然后该菜单项会向对操作感兴趣的视图发送通知。这并不理想,但很有效
我使用空格键实现了一个播放动作,部分内容如下:UIKeyCommand(输入:”,modifierFlags:[],操作:#选择器(togglePlay))
有关详细信息,请参阅UIMenuBuilder文档。您可以覆盖AppDelegate中的buildMenu功能,并从中操作菜单栏。这将在无需Catalyst环境检查的情况下工作
override func buildMenu(with builder: UIMenuBuilder) {
super.buildMenu(with: builder)
builder.remove(menu: .services)
builder.remove(menu: .format)
builder.remove(menu: .toolbar)
builder.insertChild(newTask(), atStartOfMenu: .file)
builder.insertSibling(logout(), afterMenu: .about)
builder.insertSibling(preferences(), afterMenu: .about)
}
输入键示例:
func newTask() -> UIMenu {
let command = UIKeyCommand(input: "n", modifierFlags: [.command], action: #selector(onNewTask))
command.title = "Menu_Title_New_Task".localized()
command.discoverabilityTitle = command.title
return UIMenu(title: command.title, image: nil, identifier: "your_identifier_here", options: .displayInline, children: [command])
}
在SwiftUI 2.0(在BigSur Beta3上)中,您可以很容易地将这样的菜单添加到Mac应用程序中:
@main
struct AppWithMenue: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.commands {
MyCommands()
}
}
}
struct MyCommands : Commands{
var body: some Commands {
CommandMenu("MyCommands") {
Section {
Button("Command 1", action: {print ("Command 1")})
.keyboardShortcut("1")
Button("Command 2", action: {print ("Command 2")})
.keyboardShortcut("2")
}
}
}
}
请分享有问题的代码。