【发布时间】:2021-07-10 00:43:03
【问题描述】:
我从这个兔子洞开始,因为一个 SwiftUI 按钮,被指定用于弹出一个菜单,.buttonStyle(BorderlessButtonStyle()) 样式在从浅色模式切换到深色模式时行为不正确。
很沮丧,我决定自己做一个按钮。我注意到 SwiftUI 按钮在弹出菜单时会发生某种切换,所以我也希望我的按钮也有这种行为。因此,我需要找出 NSMenu 何时关闭。
我已经尝试了here ⤵︎建议的答案
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。
有没有办法解决这个问题?
【问题讨论】:
标签: swift macos swiftui nsmenu