如果没有其他窗口打开,请重新打开窗口。 Mac,可可

时间:2015-07-20 14:19:03

标签: objective-c macos cocoa window

您好我正在使用一个使用2个窗口的程序。 使用主窗口,您可以打开第二个窗口。

如果我在程序运行时单击runnable文件,则第一个窗口将在第二个窗口打开。多数民众赞成没有。 如果第二个窗口没有打开或最小化,我怎么能独占打开第一个窗口,否则我宁愿激活第二个窗口而不重新打开第一个窗口。

我希望你能帮助我,因为我在互联网上找不到任何有用的东西。我是OSX编程的新手,但我在其他语言中并不差。

1 个答案:

答案 0 :(得分:1)

您需要实施NSApplicationDelegate方法applicationShouldHandleReopen:hasVisibleWindows:

我只是在应用程序关闭了所有窗口并且需要重新打开窗口时才使用此功能,但我相信这对您有用:

- (BOOL) applicationShouldHandleReopen:(NSApplication *)sender hasVisibleWindows:(BOOL)flag
{
    return !flag;
}

如果没有可见的窗口,则告诉NSApp重新打开默认方式(YES),并且"什么都不做" (NO)如果有可见的窗口。

然而,奇怪的是,这应该是默认行为,除非您的第二个窗口是NSPanel。那么也许这就是问题的根源?如果这有效,请告诉我......很高兴通过反馈进行更新。