Eu tentei configurar o botão no contextMenu
, mas não está funcionando.
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
}
o que eu tenho:
O que estou procurando: ( botões excluir e ligar )
Eu criaria um UIAction
como o seguinte em, UIKit
mas não consigo encontrar nenhum modificador ou mesmo assim para trazer isso para o SwiftUI :
let delete = UIAction(title: "Remove", image: UIImage(systemName: "trash"), attributes: .destructive) { action in
// remove it
}
swift
contextmenu
swiftui
ios13
Mojtaba Hosseini
fonte
fonte
Respostas:
Alternar um booleano que determina se a exibição é visível funciona:
Obviamente, como o menu de contexto está anexado ao
Text
que foi removido, ele será removido permanentemente, a menos que você tenha algo mais (por exemplo, aButton
) que alterna o booleano (textVisible
neste caso).Edit : O OP queria saber como tornar os botões no menu de contexto desativados / destrutivos (cores de primeiro plano em cinza / vermelho), mas acredito que em 20 de outubro de 2019, o SwiftUI possui um bug que não permite botões no contexto menu para ter qualquer cor diferente de vermelho. Caso contrário, definir o botão como
.disabled(true)
deve ter uma cor cinza e desativá-lo, e definir a cor do primeiro plano do botão para vermelho (foregroundColor(.red)
) deve tornar o botão destrutivo.fonte