macOS SwiftUI中用Menu替代MenuButton时隐藏下拉箭头的方法
方法一:适用于macOS 13+(Ventura及以上)
直接使用.menuIndicator(.hidden)修饰符即可隐藏默认的下拉箭头,这是官方提供的最简洁方案:
Menu("☰") { Button(action: { print("Something") }) { HStack { Image(systemName: "questionmark.circle") Text("Something") } } Button(action: { print("Something Else") }) { HStack { Image(systemName: "exclamationmark.circle") Text("Something Else") } } } .menuIndicator(.hidden)
方法二:兼容macOS 12及更早版本
通过自定义Menu的标签视图,完全控制显示内容,避免默认箭头出现。同时可以搭配按钮样式实现无边界的点击效果:
Menu { Button(action: { print("Something") }) { HStack { Image(systemName: "questionmark.circle") Text("Something") } } Button(action: { print("Something Else") }) { HStack { Image(systemName: "exclamationmark.circle") Text("Something Else") } } } label: { Text("☰") .padding(4) // 优化点击热区大小 } .buttonStyle(BorderlessButtonStyle())
这两种方式都能实现原MenuButton搭配BorderlessButtonMenuButtonStyle时仅显示图标、无下拉箭头的效果。
内容的提问来源于stack exchange,提问作者Manngo
相关产品推荐
相关产品推荐

