【问题标题】:OS X app doesn't launch new window on dock icon press in SwiftOS X 应用程序不会在 Swift 中按下停靠图标时启动新窗口
【发布时间】:2017-01-16 23:14:22
【问题描述】:

我正在用 Swift 制作 Mac 应用程序,但遇到了问题。当我的应用程序首次从终止状态启动时,它会自动启动一个新窗口。但是,如果用户Xs 退出我的应用程序(带有红色 X 图标)而不是退出它,然后点击我的应用程序的应用程序图标,新窗口不会自动打开。

如果我的应用程序的窗口还没有打开,我如何让我的 Mac 应用程序在每次点击停靠图标时启动一个新窗口?

【问题讨论】:

标签: swift macos window


【解决方案1】:

将此添加到您的 App Delegate:

func applicationShouldHandleReopen(theApplication: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
    if !flag {
        for window: AnyObject in theApplication.windows {
            window.makeKeyAndOrderFront(self)
        }
    }
    return true
}

【讨论】:

    【解决方案2】:

    别忘了放

    lazy var windows = NSWindow()
    

    到 AppDelegate 的某个地方

    然后实施

    func applicationShouldHandleReopen(theApplication: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
            if !flag {
            for window: AnyObject in theApplication.windows {
                window.makeKeyAndOrderFront(self)
            }
        }
        return true
    }
    

    就像@Owlswipe 写的那样

    【讨论】:

    • 你能解释一下为什么需要windows var吗?
    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    相关资源
    最近更新 更多