【发布时间】:2022-11-24 15:52:53
【问题描述】:
语境
我有一个只能从 macOS 菜单栏运行的应用程序。 (info.plist中的LSUIElement属性设置为YES)。
单击菜单栏按钮时,此应用程序显示的不是菜单,而是NSPopover。弹出窗口包含一个 NSHostingView,它有一个非常简单的 SwiftUI 视图:
struct PopoverContentView: View
{
@State private var color: CGColor = .white
var body: some View
{
ColorPicker(selection: $color) {
Text("Pick a Color:")
}
}
}
问题
单击 ColorPicker() 不会打开 macOS 颜色选择器窗口。 ColorPicker() 按钮的用户界面发生变化,显示“已选择”边框状态,但颜色选择器窗口从未出现。
但是,如果我将 LSUIElement 更改为 NO和然后通过单击它的 Dock 图标激活该应用程序(这样它就会接管菜单栏),然后单击弹出窗口中的 ColorPicker() 实际上会显示颜色选择器窗口。
您知道强制 macOS 显示后台应用程序的颜色选择器窗口的方法吗?
【问题讨论】:
标签: macos swiftui appkit color-picker lsuielement