10.15 中的 PrefPane 不会重新打开外部 windows

PrefPane in 10.15 will not reopen external windows

My Pref Pane 为每个显示打开一个 window,类似于 Displays PrefPane 的工作方式。当我第一次启动时,OS 调用我的 mainViewDidLoad,我使用 initWithWindowNibName 打开外部 windows。这很好用。

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

当他们回到我的 PrefPane 时,我得到 willSelect 并调用:

[window orderWindow:NSWindowAbove relativeTo:0];

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

我尝试使用其他方法 hide/show windows 包括 [window setIsVisible:] 但没有任何方法可以恢复 window。

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

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

有没有人见过这个或知道解决办法?

使用 Apple DTS 后,这是 PrefPanes 中的预期行为,现在 运行 在一个单独的进程中,并且该进程不希望窗格打开额外的 windows。

在 didSelect 中 open/close windows 仍然是可能的,但这更多的是副作用,并且在长 运行 中可能不起作用。我们已决定将我们的软件从系统偏好设置中拉出并放入常规应用程序中以确保长期兼容性。