我的視圖中有帶有keyboardShortcut 的按鈕來接收keyboardShortcuts,但我不希望這些按鈕可見。
何我最好隱藏它們?
我試過這樣,但如果我添加.buttonStyle(PlainButtonStyle())到組中,帶有箭頭的按鈕不再起作用(默認和轉義)。
import SwiftUI
struct HiddenCommandbutton: View {
@State var showMiniDialog = false
var body: some View {
VStack{
Text("Hello, world!")
.padding()
Button("show"){showMiniDialog = true}
.sheet(isPresented: $showMiniDialog){
MiniDialog()
}
}
}
}
struct MiniDialog: View {
@Environment(\.dismiss) var dismiss
@State var sel: Int?
var options = ["Opt1", "Opt2", "Opt3", "Opt4"]
var rEdge:Int { options.count-1}
var body: some View {
ZStack{
Group{
Button(""){dismiss()}.keyboardShortcut(.cancelAction)
Button(""){dismiss()}.keyboardShortcut(.defaultAction)
Button(""){left()}.keyboardShortcut(.leftArrow)
Button(""){right()}.keyboardShortcut(.rightArrow)
}//.buttonStyle(PlainButtonStyle())
.padding(0)
HStack{
ForEach(options.indices) { index in
option(options[index],pos: index)
}
}
}
.padding(4)
}
func left(){
if sel == nil {
sel = rEdge
} else if sel! > 0 {
sel = sel! - 1
}
}
func right(){
if sel == nil {
sel = rEdge
} else if sel! < rEdge {
sel = sel! 1
}
}
@ViewBuilder func option(_ title: String, pos: Int) -> some View {
if (sel != nil && sel! == pos) {
Text(title)
.padding(4)
.background(Color.red)
.cornerRadius(5.0)
} else {
Text(title)
.padding(4)
.cornerRadius(5.0)
}
}
}
uj5u.com熱心網友回復:
試試這個
Group{
Button(""){dismiss()}.keyboardShortcut(.cancelAction)
Button(""){dismiss()}.keyboardShortcut(.defaultAction)
Button(""){left()}.keyboardShortcut(.leftArrow)
Button(""){right()}.keyboardShortcut(.rightArrow)
}
.opacity(0) // << here !!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/415459.html
標籤:
