Próbowałem skonfigurować przycisk w contextMenu
, ale nie działa.
Text("A label that have context menu")
.contextMenu {
Button(action: {
// remove it
}) {
Text("Remove")
.foregroundColor(.red) // Not working
Image(systemName: "trash")
}.disabled(true) // Not working
}
Co ja mam:
Czego szukam: ( przyciski usuwania i wywoływania )
Chciałbym stworzyć coś UIAction
podobnego do poniższego, UIKit
ale nie mogę znaleźć żadnego modyfikatora ani w żaden sposób, aby przenieść go do SwiftUI :
let delete = UIAction(title: "Remove", image: UIImage(systemName: "trash"), attributes: .destructive) { action in
// remove it
}
swift
contextmenu
swiftui
ios13
Mojtaba Hosseini
źródło
źródło
Odpowiedzi:
Przełączanie wartości logicznej, która określa, czy widok jest widoczny, działa:
Oczywiście, ponieważ menu kontekstowe jest dołączone do tego,
Text
co zostało usunięte, zostanie trwale usunięte, chyba że masz coś innego (np. AButton
), który przełącza wartość logiczną (textVisible
w tym przypadku).Edycja : OP chciał wiedzieć, jak sprawić, by przyciski w menu kontekstowym były wyłączone / destrukcyjne (szare / czerwone kolory pierwszego planu), ale wierzę, że od 20 października 2019 r. SwiftUI ma błąd, który nie pozwala na żadne przyciski w kontekście menu w dowolnym kolorze innym niż czerwony. W przeciwnym razie ustawienie przycisku w taki sposób,
.disabled(true)
aby nadało mu szary kolor i wyłączenie, a ustawienie koloru pierwszego planu przycisku na czerwony (foregroundColor(.red)
) powinno spowodować, że przycisk będzie destrukcyjny.źródło