Saya mencoba mengkonfigurasi tombol di contextMenu
, tetapi tidak berfungsi.
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
}
apa yang saya punya:
Yang saya cari: ( hapus dan panggil tombol)
Saya akan membuat UIAction
seperti berikut ini UIKit
tetapi saya tidak dapat menemukan pengubah atau tetap membawa ini ke SwiftUI :
let delete = UIAction(title: "Remove", image: UIImage(systemName: "trash"), attributes: .destructive) { action in
// remove it
}
swift
contextmenu
swiftui
ios13
Mojtaba Hosseini
sumber
sumber
Jawaban:
Beralih boolean yang menentukan apakah tampilan terlihat berfungsi:
Tentu saja, karena menu konteks dilampirkan ke
Text
yang telah dihapus, itu akan dihapus secara permanen kecuali Anda memiliki sesuatu yang lain (misalnya aButton
) yang mengubah boolean (textVisible
dalam hal ini).Sunting : OP ingin tahu cara membuat tombol di menu konteks dinonaktifkan / destruktif (warna latar depan abu-abu / merah), tetapi saya percaya bahwa pada 20 Oktober 2019, SwiftUI memiliki bug yang tidak mengizinkan tombol apa pun dalam konteks menu menjadi warna apa saja selain merah. Jika tidak, pengaturan tombol seperti yang
.disabled(true)
seharusnya memberikan warna abu-abu dan menonaktifkannya, dan pengaturan warna foreground tombol menjadi merah (foregroundColor(.red)
) harus membuat tombol destruktif.sumber