0

My Pref Pane 为每个显示打开一个窗口,类似于 Displays PrefPane 的工作方式。当我第一次启动时,操作系统会调用我mainViewDidLoad使用initWithWindowNibName. 这工作正常。

然后在 中willUnselect,我调用[window orderOut:self];每个外部窗口并且它们正确隐藏。例如,如果用户从我的 PrefPane 切换到 Sound 或 Network PrefPane,就会发生这种情况。

当他们回到我的 PrefPane 时,我会willSelect打电话给:

[window orderWindow:NSWindowAbove relativeTo:0];

此调用不再有效(它适用于 10.14.6 及更早版本的所有版本,并且可能适用于 10.15 的早期版本,但它肯定在 10.15.6 中损坏)。

我尝试使用其他方法来隐藏/显示窗口,包括[window setIsVisible:]但没有任何方法可以恢复窗口。

我认为这可能与此博客讨论的内容有关:

https://www.noodlesoft.com/blog/2019/08/28/preference-panes-and-catalina/

有没有人看到这个或知道修复它?

4

1 回答 1

0

使用 Apple DTS 后,这是预期行为,因为 PrefPanes 现在在单独的进程中运行,并且该进程不希望窗格打开其他窗口。

仍然可以在 didSelect 中打开/关闭窗口,但这更像是一种副作用,从长远来看可能不起作用。我们已决定将我们的软件从系统偏好设置中拉出并进入常规应用程序,以确保长期兼容性。

于 2021-06-05T23:40:43.567 回答