带有菜单的 ToolbarItem 很难点击 - SwiftUI

Lor*_*Foe 11 ios swift swiftui

我尝试创建一个(添加/加号)按钮,该按钮显示一个菜单,我们可以从中选择要执行的操作(它类似于 iPhone 上的“文件”或“便笺”应用程序)

.navigationTitle("Hello World Everyone")
.toolbar {
    ToolbarItem(placement: .navigationBarTrailing) {
        Menu(content: {
            Button(action: {print("option A")}, label: {Label("My option A", systemImage: "folder.badge.plus")})
            Button(action: {print("option B")}, label: {Label("My option B", systemImage: "doc.badge.plus")})
        }, label: {
            Image(systemName: "plus")
                .imageScale(.large)
                .background(Color.red)
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

但问题是,点击这个“加号”按钮非常困难!另一方面,如果我使用传统的 Button 块而不是 Menu 块,这个问题就会消失(但当然我失去了我想要的功能)(在 Xcode 13b4 中不再是这种情况)

你有什么想法?

编辑1:

很少有人建议我在菜单标签上添加填充,这是一个好主意,但这就是为什么它不完美的原因:

可点击区域(以红色表示)不会到达屏幕的后边缘(参见紫色绘图)。因此,如果用户不幸点击了添加按钮的这一侧(紫色区域),则点击将不起作用:换句话说,点击此按钮仍然非常困难!
另一个问题是加号图标从默认位置向左移动

小智 0

如果你在SwiftUIButton内部使用,它会自动将其转换为,而在. 您可以传递 Custom ,而不是传递 a 。ToolbarToolBarButtonToolBarButtonButtonView

        .toolbar {
            ToolbarItem(placement: .navigationBarTrailing) {
                Menu(content: {
                    Label("My option A", systemImage: "folder.badge.plus")
                        .onTapGesture { 
                            print("My option A") 
                        }
                    Label("My option B", systemImage: "doc.badge.plus")
                        .onTapGesture { 
                            print("My option B") 
                        }
                }, label: {
                    Image(systemName: "plus")
                        .imageScale(.large)
                        .background(Color.red)
                })
            }
        }
Run Code Online (Sandbox Code Playgroud)