在Carbon中,您可以使用HideWindow(WindowRef)和ShowWindow(WindowRef)更改窗口的可见性。

在Cocoa中,我知道您可以调用NSWindow的orderOut:来隐藏和orderFront:,orderBack:或orderWindow:relativeTo:使其重新显示在屏幕上,但是当它们最后一次可见时,没有一个相对于其他窗口相对于该窗口的排序。

例如,如果我有两个窗口,一个窗口在另一个窗口上方,然后在后窗口中调用orderOut:,该如何再次显示该窗口,使其仍位于前窗口的后面,而无需调用orderWindow:relativeTo:。

我现在唯一能想到的就是记住紧靠其上方的窗口的窗口ID,然后在再次显示它时使用orderWindow:relativeTo:,但是我没有考虑过如果上方的窗口在关闭之前关闭会发生什么情况。后车窗再次可见。

最佳答案

我认为可可中没有任何可用的方法。我想您需要使用您的想法来模仿。

顺便说一句,如果您从按以下顺序订购的四个窗口开始,碳行为是什么?

 A B X C D E


然后隐藏X

 A B C D E


现在,用户对其重新排序,并删除了一些:

 E A C


然后再次显示X。在这种情况下,X在Carbon中去哪了?

关于cocoa - cocoa 中的ShowWindow/HideWindow,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4948801/

10-12 14:44
查看更多