首页 > 解决方案 > SwiftUI 中键盘快捷键的标题

问题描述

我想在 SwiftUI 中更改键盘快捷键的可发现性标题。正如您在下面看到的,如果在文本按钮中使用,标题会显示在弹出窗口中,但如果您为按钮使用图像,则它不会显示在弹出窗口中(当在键盘上按住 cmd 以查看应用程序支持的快捷方式时)。

struct ContentView: View {
    var body: some View {

        VStack {
            Button("Save to Favorites") {

            }
            .keyboardShortcut("a")

            Button {

            } label: {
                Image(systemName: "heart.fill")
            }
            .keyboardShortcut("s")
        }
    }
}

结果

如何为快捷方式帮助弹出窗口添加标题?

请注意,我已经尝试了所有可访问性的东西,即标签、标识符、提示等……但它没有用。

标签: swiftui

解决方案


不是一个超级优雅的解决方案,但我通过添加Text一个.frame大小为width: 0, height: 0. 这有效地隐藏了Text视图,但确保它在用户按住 ⌘ 键时出现。

考虑把它放在一个ZStack也因为默认安排可能让它稍微偏离中心。

VStack {
    Button("Save to Favorites") {
        
    }
    .keyboardShortcut("a")
    
    Button {
        
    } label: {
        ZStack {
            Text("heart")
                .frame(width: 0, height: 0) // <- this part
            Image(systemName: "heart.fill")
        }
    }
    .keyboardShortcut("s")
}

按住命令键


推荐阅读