自定义最小化窗口按钮macOS-Swift



我正在Swift中为macOS开发一个应用程序。我正在设计的视图禁用了标准的"红绿灯"和透明的全尺寸内容标题栏。我需要设计一个新的自定义红绿灯来退出应用程序,并将窗口最小化。我已经找到了如何制作自定义退出按钮,但我无法创建自定义最小化按钮。我是macOS编程的新手,所以我肯定做错了什么。

这是我试图使用但不起作用的代码:

@IBAction func miniApp(_ sender: Any) {
NSWindow.miniaturize(self)
}

我正在使用Swift 4

我想不出做这件事的正确方法。提前感谢

您需要将该操作发送到当前窗口。如果这个动作在你的视图控制器中,那么它应该是

@IBAction func miniApp(_ sender: Any) {
self.view.window.miniaturize(self)
}

风格的mask〔.minializable〕需要调用minialize(self(,它将在内部启用窗口中的默认最小化按钮。

@IBAction func miniApp(_ sender: Any) {
self.window.styleMask.insert(.miniaturizable)
self.window.miniaturize(self)
}

当窗口显示给用户时,您可以再次禁用"最小化"按钮。实现windowDidBecomeMain功能并删除最小化选项

func windowDidBecomeMain(_ notification: Notification) {

mywin?.styleMask.remove(.miniaturizable)
}

最新更新