【问题标题】:ReOpen Window just if there is no other window open. Mac, cocoa仅当没有其他窗口打开时重新打开窗口。麦克,可可
【发布时间】:2015-07-20 14:19:03
【问题描述】:

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

如果我在程序运行时单击可运行文件,第一个窗口将在第二个窗口上打开。那是不想要的。 如果第二个窗口没有打开或最小化,我怎么能专门打开第一个窗口,否则我宁愿激活第二个窗口而不重新打开第一个窗口。

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

【问题讨论】:

    标签: objective-c macos cocoa window


    【解决方案1】:

    需要实现NSApplicationDelegate方法applicationShouldHandleReopen:hasVisibleWindows:

    我只在应用程序关闭了所有窗口并需要重新打开一个窗口时才使用它,但我相信这对你有用:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-08-07
      • 2012-06-30
      • 2011-05-17
      • 2013-04-29
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多