J'ai essayé de configurer le bouton dans le contextMenu
, mais cela ne fonctionne pas.
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
}
ce que j'ai:
Ce que je recherche: ( supprimer et boutons d' appel )
Je créerais un UIAction
comme le suivant, UIKit
mais je ne trouve aucun modificateur ou de toute façon pour apporter cela à SwiftUI :
let delete = UIAction(title: "Remove", image: UIImage(systemName: "trash"), attributes: .destructive) { action in
// remove it
}
swift
contextmenu
swiftui
ios13
Mojtaba Hosseini
la source
la source
Réponses:
Le basculement d'un booléen qui détermine si la vue est visible fonctionne:
Bien sûr, puisque le menu contextuel est attaché à celui
Text
qui a été supprimé, il sera définitivement supprimé à moins que vous ayez quelque chose d'autre (par exemple aButton
) qui permute le booléen (textVisible
dans ce cas).Edit : OP voulait savoir comment rendre les boutons dans le menu contextuel désactivés / destructeurs (couleurs de premier plan gris / rouge), mais je crois que depuis le 20 octobre 2019, SwiftUI a un bug qui n'autorise aucun bouton dans le contexte le menu doit être de n'importe quelle couleur autre que le rouge. Sinon, définir le bouton tel qu'il
.disabled(true)
devrait lui donner une couleur grise et le désactiver, et définir la couleur de premier plan du bouton sur rouge (foregroundColor(.red)
) devrait rendre le bouton destructeur.la source