swift - 如何通过 swift 以编程方式使用系统功能?
问题描述
如果我们查看 macOS 的热键/快捷方式,我们会发现其中有很多功能。有些功能分配给热键,有些则没有。
例如:
截图(cmd+shift+F5)
或显示桌面(隐藏所有应用程序)(F11)
以及许多其他内置的操作系统功能:
问题如下:如何在我的代码中使用此功能而不使用热键按下模仿?
目标是不要编写自定义代码,以防操作系统中已经存在此类功能。
我只找到了如何打开某种系统偏好,也许这是我需要去的方向,但我没有通过谷歌找到任何细节。
import Cocoa
// Open Siri prefs
NSWorkspace.shared.open(URL(fileURLWithPath: "/System/Library/PreferencePanes/Speech.prefPane"))
// Open Siri prefs with another way
NSWorkspace.shared.open(URL(fileURLWithPath: "x-apple.systempreferences:com.apple.preference.speech"))
// Open System Preferences window
NSWorkspace.shared.open(URL(fileURLWithPath: "x-apple.systempreferences:com.apple.preference"))
解决方案
您正在查看的领域是系统服务,实际上您的问题没有一个答案,因为其中一些项目可通过自己的 API 获得,其中一些是私有 macOS 功能,其中一些可通过实际服务获得。
您可以从以下内容开始您的发现:
BOOL NSPerformService(NSString *serviceItem, NSPasteboard *pboard)
以及服务实施指南,其中描述了详细信息。
使用这些东西的另一种机制是 AppleScript……非常广泛的领域。