跳过正文
  1. Posts/

写个小工具 Swwwitch

目录

最近看到开发圈某热点,做了个小工具,总结下最近的几个 CocoaApp 上的功能,仅做练手。现在只包含了两个开关:切换系统主题和隐藏桌面 icon 的功能。

Swwwitch-c500

功能点
#

  1. 切换系统主题
  2. 显式或者印象桌面图标
  3. 完全的 Menu Only 应用
  4. 开机自启动

关于第三点的实现在另外一篇文章有讲过,第四点的实现在 这一篇 中有讲。

系统主题切换
#

关于系统主题切换主要是基于 AppleScript 所写,

tell application "System Events"
	tell appearance preferences
		set dark mode to not dark mode
	end tell
end tell

你完全可以自行执行这段 Apple Script 来切换主题,你可以点击下面链接尝试。

Click Here to run

显式/隐藏桌面图标
#

关于隐藏桌面图标,实际上是执行系统的 Command 来实现的,Cocoa 应用可以显式使用 Process(也就是 NSTask)来执行任务,我们也是通过 NSTask 执行了一段如下的命令行达到的目的:

defaults write com.apple.finder CreateDesktop false
killall Finder

你可以自行点击以下链接尝试。

Click here to hide Desktop Icons

Click here to show Desktop Icons

感兴趣可以去看下代码,领会意思即可。 Releases

TODO
#

  1. Add more switch
  2. Add User-Customized switch setting

Links#

Checkout all command lines macOS Support

相关文章

Mac 平台上那些 Dockless 的 App 都是如何实现的?

Menu Only 算是 Cocoa App 中最常见的一项,它使得 App 不占用你的 Dock 栏,在多 workspace 的时候也不影响正常使用,随时都可以在屏幕的菜单栏中执行快捷操作。尤其是针对一些需要便捷性要求比较高的应用来讲,Menu bar 的功能必不可少。本文就简单介绍一下关于 Menu App 中关键的几个开发步骤。

为 NSView 增加 backgroundColor

·1 分钟
NSView 作为 Cocoa 中最基本的构成元素,是构成整个 Mac App 视图体系的基础,和 UIView 在 iOS 世界中的位置一样重要,可是在 UIView 里司空见惯的背景色设置,在 NSView 中却不见身影。

Apple Event Sandboxing

·2 分钟
问题背景 # 最近在修改某个 Mac 应用,其原理就是通过执行一段 AppleScript 获取 OmniFocus 的信息,然后进行可视化展示,但是总取不到数据。