2

我有一个基于 Carbon 的应用程序,我正在迁移到 Cocoa。目前,应用程序的窗口是 Carbon 窗口 (CaW1)。此窗口创建并显示一个 Cocoa 窗口 (CoW1),后者又创建并显示另一个 Cocoa 窗口 (CoW2)。

当我这样做时,屏幕上所有窗口的顺序,从后到前,如下所示:

牛牛
1牛牛1
牛牛2

CoW2 是顶部窗口,下方是 CoW1,后面是 CaW1。这是我所期望的行为。

现在,当我在 Lion 中启动 Mission Control 并单击我的应用程序时,窗口会重新排序。新的顺序是:

牛牛
1牛牛2
牛牛1

两个 Cocoa 窗口交换了位置。这种行为不是我所期望的。我本来预计 CoW2 会保持在 CoW1 之上。

我试图理解为什么会这样。有什么想法吗?

4

1 回答 1

0

在带有一些 Cocoa 窗口的基于 Carbon 的应用程序中,我养成了将其添加到每个NSWindowController子类的习惯:

- (void)windowDidBecomeMain:(NSNotification *)notification
{
    ActivateWindow( (WindowRef) [[self window] windowRef], true );
}

它似乎有助于解决一些窗口排序问题,但我不知道它是否有助于解决您的问题。

于 2012-05-26T04:39:35.263 回答