SwiftUI - 在navigationBarTrailing的ToolbarItem中添加菜单

11

我有一个 NavigationVeiw,其导航栏的尾部有一个 ToolbarItem

.toolbar {
    ToolbarItem(placement: .navigationBarTrailing) {
        Button(action: {}, label: {
            Text("Button")
        })
    }
}

navigationBarItems(leading:trailing:)已经过时,因此我正在使用带有navigationBarTrailing位置的toolbar(content:)- Apple


我在按钮上使用了contextMenu。

   .toolbar {
        ToolbarItem(placement: .navigationBarTrailing) {
            Button(action: {}, label: {
                Text("Button")
            })
            .contextMenu(menuItems: {
                Text("Menu Item 1")
                Text("Menu Item 2")
                Text("Menu Item 3")
            })
        }
    }

它不够敏感。你需要用力按才能呈现它。我需要像iOS相片应用程序的添加按钮一样只需单击即可呈现它。它可以通过单击展示。

如何通过单击(而非按压)显示菜单?

1个回答

12

.contextMenu是3D Touch(按住并长按)的常规菜单

.toolbar {
     ToolbarItem(placement: .navigationBarTrailing) {
         Menu(content: {
             Text("Menu Item 1")
             Text("Menu Item 2")
              Text("Menu Item 3")
         }, label: {Text("button")})
      }
  }

但是使用标签 Image(systemName: "plus") 的按钮很难点击!如何解决这个问题? - LetsGoBrandon
你必须通过以下方法之一来扩展可点击区域:.frame(maxWidth: .infinity, maxHeight: .infinity).contentShape(Rectangle()),并将其放置在 Image 上方。 - lorem ipsum
我尝试过了,但是不起作用:( 我甚至尝试使用.padding(),但问题是它显然向左移动,看起来不好。 - LetsGoBrandon
请使用最小可复现示例提出问题。 - lorem ipsum
好的,我在这里开始了一个新问题:https://dev59.com/98Hqa4cB1Zd3GeqP3p7U - LetsGoBrandon

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