Я пытался настроить кнопку в contextMenu
, но она не работает.
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
}
что я имею:
Что я ищу: ( кнопки удаления и вызова )
Я хотел бы создать что-то UIAction
вроде следующего, UIKit
но я не могу найти какой-либо модификатор или в любом случае, чтобы перенести это в SwiftUI :
let delete = UIAction(title: "Remove", image: UIImage(systemName: "trash"), attributes: .destructive) { action in
// remove it
}
swift
contextmenu
swiftui
ios13
Мойтаба Хоссейни
источник
источник
Ответы:
Переключение логического значения, определяющего, является ли представление видимым, работает:
Конечно, так как контекстное меню присоединено к
Text
удаленному, оно будет удалено навсегда, если у вас нет чего-то другого (например, aButton
), которое переключает логическое значение (textVisible
в данном случае).Редактировать : OP хотел знать, как сделать кнопки в контекстном меню отключенными / деструктивными (серый / красный цвета переднего плана), но я считаю, что по состоянию на 20 октября 2019 года в SwiftUI есть ошибка, которая не позволяет использовать кнопки в контексте меню должно быть любого цвета, кроме красного. В противном случае установка кнопки так, как она
.disabled(true)
должна иметь серый цвет, отключение, а установка цвета переднего плана кнопки на красный (foregroundColor(.red)
) должна привести к разрушению кнопки.источник