[英]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.