Traté de configurar el botón en el contextMenu
, pero no funciona.
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
}
lo que tengo:
Lo que estoy buscando: ( eliminar y llamar botones)
Crearía algo UIAction
similar a lo siguiente, UIKit
pero no puedo encontrar ningún modificador o de todos modos para llevar esto a SwiftUI :
let delete = UIAction(title: "Remove", image: UIImage(systemName: "trash"), attributes: .destructive) { action in
// remove it
}
swift
contextmenu
swiftui
ios13
Mojtaba Hosseini
fuente
fuente
Respuestas:
Alternar un valor booleano que determina si la vista es visible funciona:
Por supuesto, dado que el menú contextual se adjunta al
Text
que se eliminó, se eliminará permanentemente a menos que tenga algo más (por ejemplo, aButton
) que active el valor booleano (textVisible
en este caso).Editar : OP quería saber cómo hacer que los botones en el menú contextual fueran deshabilitados / destructivos (colores de fondo gris / rojo), pero creo que a partir del 20 de octubre de 2019, SwiftUI tiene un error que no permite ningún botón en el contexto el menú debe ser de cualquier color que no sea rojo. De lo contrario, establecer el botón como
.disabled(true)
debería darle un color gris y deshabilitarlo, y establecer el color de primer plano del botón en rojo (foregroundColor(.red)
) debería hacer que el botón sea destructivo.fuente