首页 > 解决方案 > 如何通过 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"))

标签: swiftmacosmacos-catalina

解决方案


您正在查看的领域是系统服务,实际上您的问题没有一个答案,因为其中一些项目可通过自己的 API 获得,其中一些是私有 macOS 功能,其中一些可通过实际服务获得。

您可以从以下内容开始您的发现:

BOOL NSPerformService(NSString *serviceItem, NSPasteboard *pboard)

以及服务实施指南,其中描述了详细信息。

使用这些东西的另一种机制是 AppleScript……非常广泛的领域。


推荐阅读