簡體   English   中英

如何將 ContextMenu 與 NavigationLink 一起使用?

[英]How to use a ContextMenu with a NavigationLink?

我有一個帶有附加.contextMenu修飾符的NavigationLink 請注意, NavigationLink位於 ForEach 內部,該ForEach位於LazyHStack內部,后者位於ScrollView內部。 (我正在創建一個水平滾動的“卡片”行,就像許多 Apple 應用程序一樣。)

現在,導航和上下文菜單都可以工作了; 如果我單擊一下,它會導航到我指定的視圖,如果我長按它會顯示一個上下文菜單。 問題是由於導航鏈接突出顯示,上下文菜單集中在突出顯示的灰色視圖上。

問題截圖

我考慮通過視圖修飾符刪除導航鏈接的突出顯示無濟於事。 灰色突出顯示仍適用於上下文菜單視圖。

.onAppear {
    UITableViewCell.appearance().selectionStyle = .none
    UITableView.appearance().allowsSelection = false
}

那么,當觸發長按手勢時,我怎樣才能擁有既可導航又可在視圖上顯示上下文菜單的視圖呢? 請注意,我並沒有嘗試在ContextMenu中使用NavigationLink (似乎有很多問題在問); 我正在嘗試將ContextMenu附加到NavigationLink

通過提供的描述,我假設解決方案是在點擊時以編程方式激活NavigationLink ,例如(偽代碼):

Card()
  .onTapGesture {
     activeCard = item
  }
  .contextMenu {
     // ...
  }
  .background(
     NavigationLink(destination: SomeView(), tag: item, selection: $activeCard) {
       EmptyView()
     }
  )

請參閱下一個完整示例https://stackoverflow.com/a/58898046/12299030

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM