首页 > 解决方案 > SwiftUI - 无需点击即可触发菜单(自定义可访问性操作)

问题描述

我有一个“杂货”列表视图每个单元格都包含一个标签和一个“添加”按钮如果您点击“添加”按钮,一个Menu带有您可以添加到的购物清单列表。

这很好,但是,对于画外音,我想添加一个可访问性操作,这样用户就不必点击按钮。我希望通过可访问性隐藏该元素,而不是一个动作。

是否可以在不点击的情况下以某种方式触发菜单显示?

例子:

struct ContentView: View {
    var body: some View {
        // Vertical list of shopping items
        VStack { 
            // Shopping Item Cell
            HStack { 
                Text("Apple")

                Spacer()

                // Non-accessible button (voice over users use actions)
                Menu("Shopping Lists") {
                    Button("List 01", action: {})
                    Button("List 02", action: {})
                    Button("List 03", action: {})
                }
                label: { 
                    Image(systemName: "add")
                }
                .accessibilityElement(hidden: true)
            }
            
            .accessibilityAction { 
                // somehow open the menu
            }
        }
    }
}

问候

标签: swiftswiftuiaccessibility

解决方案


推荐阅读