swift - 在 cocoa 应用程序中关闭单击时显示和隐藏窗口而不是终止应用程序

标签 swift xcode macos cocoa

我一直试图在关闭(红色按钮)时显示隐藏窗口单击窗口。我想做的是隐藏窗口,当用户再次点击我的应用程序时,它会再次显示。

提前感谢所有提供答案的开发人员。我是 Cocoa 应用程序的新手。我是 iOS 开发人员,所以我对 cocoa 应用程序了解不多。

我也尝试隐藏(:) 方法和orderOut(:) 方法。但没有工作。

class ViewController : NSViewController, NSWindowDelegates {

    override func viewDidAppear() {
         self.view.window?.delegate = self
    }

    func windowShouldClose(_ sender: NSWindow) -> Bool {
         //NSApplication.shared.terminate(self)
         //NSApp.hide(self)
         //self.view.window?.orderOut(sender)
        return false
    }
}

我想创建一个在后台运行的计时器应用程序,如果用户单击关闭,它将隐藏而不是终止。当他再次从停靠菜单中单击时,它将重新打开窗口。

最佳答案

我不太喜欢 Mac OS 开发,但我认为你应该像这样从 NSWindowController 继承:

class MyWindowController: NSWindowController, NSWindowDelegate {

    func windowShouldClose(_ sender: NSWindow) -> Bool {
        NSApp.hide(nil)
        return false
    }
}

然后你只需要打开你的主(或任何你有的名字) Storyboard,选择 Window Controller 并设置你的 MyWindowController 到它:

enter image description here

我试过了,它对我有用。

关于swift - 在 cocoa 应用程序中关闭单击时显示和隐藏窗口而不是终止应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54529085/

相关文章:

c++ - g++ 不能在 Mac OS X Mavericks 上编译

c - OSX 命令行 Readline 等效项

swift - 如何在 Swift 中创建一个 NSMutableDictionary?

swift - 当从 xib 加载 subview 到 UIScrollView 时,快速出现错误 'EXC_BAD_ACCESS'

ios - 如何将 CocoaHTTPServer 添加到 XCode 4 上的 iOS 项目

iphone - 前往/缩放至当前位置功能(MapKit)

ios - NetworkExtension connectOnDemand 规则不起作用

ios - 使用 swift 代码编码 url

Ios 模拟器没有启动 react native 应用程序

macos - Oracle 的 JDK 7 for Mac 安装不一致,如何彻底摆脱旧的 Apple JDK?