macOS 开发 tips
有些时候突然兴起想写个Mac软件,但是Mac软件开发真的后妈养的,资料少,坑多。。。 在这里记录下自己遇到的一些小问题和解决办法。
判断 dark mode
使用 effectiveAppearance,去做判断
class func isDarkMode(view: NSView) -> Bool {
if #available(macOS 10.14, *) {
if let appearence = view.effectiveAppearance {
let current = appearence.bestMatch(from: [NSAppearance.Name.darkAqua, NSAppearance.Name.aqua])
return current == NSAppearance.Name.darkAqua
}
}
return false
}
响应用户点击dock图标的事件
以下俩方法监听哪个都可以 tab切换和图标点击都会触发
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender;
- (BOOL)applicationOpenUntitledFile:(NSApplication *)sender;
动态修改app在dock中显示的图标
代码真的很简单,就是找到这行代码的过程有点长
let image = NSImage.init(named: "green")
NSApplication.shared.applicationIconImage = image
APP关闭窗口,dock 中的APP消失
Xcode11 默认在plist文件中设置NSSupportsAutomaticTermination
为true。
会导致APP被闲置时自动被终结。
activity 查看会发现APP还存在,双击打开APP会发现之前的内存数据都在。 APP 并没有结束工作,只是dock中的APP图标消失,或者显示未激活状态。 不晓得是不是个bug,还是我理解不到位。求各位大神指导。
隐藏Dock中APP图标
NSApplication.shared.presentationOptions = .hideDock
通过设置presentationOptions同样可隐藏 menu