Я начал эту кроличью нору, потому что кнопка SwiftUI, предназначенная для всплывающего меню, со стилем .buttonStyle(BorderlessButtonStyle())
не вела себя правильно при переключении со светлого на темный режим.
Разочарованный, я решил просто сделать свою собственную кнопку. Я заметил, что кнопка SwiftUI как бы переключается при появлении всплывающего меню, и поэтому я хочу, чтобы это поведение было и для моей кнопки. Поэтому мне нужно узнать, когда закрывается NSMenu.
Я попробовал ответ, предложенный здесь ⤵︎
class NSMenuDelegateModified: NSObject, NSMenuDelegate, ObservableObject {
var menu: NSMenu
@Published var isVisible: Bool?
internal init(menu: NSMenu) {
self.menu = menu
super.init()
self.menu.delegate = self
}
func menuDidClose(_ menu: NSMenu) {
isVisible = false
}
func menuWillOpen(_ menu: NSMenu) {
isVisible = true
}
}
Теперь это скажет мне, видимо ли меню внутри класса, но когда я пытаюсь распечатать .isVisible
для экземпляра объекта класса, он возвращает только false.
Есть ли способ выяснить это?