2015-07-20 50 views
2

你好我的工作,它使用2个窗口的程序。 通过主窗口,您可以打开第二个窗口。如果没有其他窗口打开,请重新打开窗口。苹果,可可

如果我在程序运行的第一个窗口,而在可运行文件即可打开在第二个窗口。那不是想要的。 我怎么能独占方式打开的第一个窗口,如果第二个没有打开或最小化,否则我宁愿激活第二个窗口,但不重新打开第一。

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

回答

0

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

当应用程序已经关闭了所有它的窗口,需要重新打开一个我只用这一点,但我相信这会为你工作:

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

这告诉NSApp如果没有可见窗口,并以“什么都不做”重新打开的默认方式(YES)(NO)是否有可见的窗口。

虽然这似乎很奇怪,但这应该是默认行为,除非您的第二个窗口是NSPanel。所以也许这就是你问题的根源?让我知道这是否有效......很高兴通过反馈进行更新。