SwiftUI 菜单/上下文菜单的标题

6

有没有办法在iOS中向Menu添加标题(调试菜单)?我知道在Swift / UIKit中是可能的,但我在SwiftUI中没有找到方法。

示例

3个回答

10
受@narek.sv回答的启发,我尝试给各个章节加上标题,结果发现效果非常好!
Menu("Example") {
    Section("Header 1") {
        Button("Item 1") {}
        Button("Item 2") {}
    }
    Section("Header 2") {
        Button("Item 1") {}
        Button("Item 2") {}
    }
}

screenshot of a menu with headers


6

目前没有官方的解决方案,但是您可以使用 Section 来实现类似的效果。

Menu(content: {
   Section {
      Text("Title")
   }
            
   Section {
      Button("Button 1") {
         print("action 1")
      }
                
      Button("Button 2") {
         print("action 2")
      }
   }
}, label: {
   ...
})

example


1
这样做的问题在于,取决于打开菜单位置的按钮,菜单可能会反转以适应屏幕。但是在 iOS 16+ 上,.environment(\.menuOrder, .fixed) 应该可以防止这种情况发生。 - Jonathan.

0

不幸的是,Apple 没有提供此功能。标题显示为“按钮”,调用菜单,但菜单本身中不再显示。 也许可以通过自己的菜单样式实现此目标。您可以在此处找到有关此信息: https://developer.apple.com/documentation/swiftui/menu


好的。谢谢您的确认。 - bunuelcubosoto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接