Mac 托盘应用程序的全局键盘快捷键

swift

1个回答

写回答

Sharooooon

2025-07-09 19:23

+ 关注

Swift
Swift

的一篇关于 Mac 托盘应用程序的全局键盘快捷键的文章,并添加案例代码。

在开发 Mac 托盘应用程序时,全局键盘快捷键是一个非常有用的功能,它可以让用户通过按下特定的键盘组合来快速执行某些操作。这些快捷键可以是任何组合的按键,如单个键、组合键或者是与功能键结合。在本文中,我们将探讨如何 一些常见的全局键盘快捷键,并提供相应的案例代码。

设置全局键盘快捷键

在 Mac 托盘应用程序中设置全局键盘快捷键可以通过使用 NSUserDefaults 类来实现。下面是一个示例代码,展示了如何设置一个全局键盘快捷键,当用户按下 Command+Control+A 时触发某个操作:

Swift

import Cocoa

class AppDelegate: NSObject, NSApplicationDelegate {

var statusItem: NSStatusItem!

func applicationDidFinishLaunching(_ aNotification: Notification) {

// 创建一个菜单栏图标

statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)

if let button = statusItem.button {

button.image = NSImage(named: NSImage.Name("icon"))

}

// 创建一个全局快捷键

let hotKey = MASShortcut(keyCode: kVK_ANSI_A, modifierFlags: NSEvent.ModifierFlags(arrayLiteral: [.command, .control]))

hotKey?.keyCombo = KeyCombo(keyCode: kVK_ANSI_A, carbonModifiers: cmdKey + controlKey)

MASShortcutMonitor.shared().register(hotKey, withAction: {

// 执行某个操作

print("快捷键被触发!")

})

}

func applicationWillTerminate(_ aNotification: Notification) {

// 移除全局快捷键

MASShortcutMonitor.shared().unregisterAllShortcuts()

}

}

let delegate = AppDelegate()

NSApplication.shared.delegate = delegate

NSApplication.shared.run()

以上代码中,我们首先创建了一个菜单栏图标,并设置了一个快捷键触发的操作。然后,我们使用 MASShortcut 类来创建一个全局快捷键,并将其注册到 MASShortcutMonitor 中。当用户按下快捷键时,注册的操作将被执行。

常见的全局键盘快捷键示例

下面是一些常见的全局键盘快捷键的示例:

1. 打开应用程序

全局键盘快捷键可以用来打开应用程序。例如,我们可以设置 Command+Option+Space 快捷键来打开 Finder 应用程序:

Swift

let hotKey = MASShortcut(keyCode: kVK_Space, modifierFlags: NSEvent.ModifierFlags(arrayLiteral: [.command, .option]))

hotKey?.keyCombo = KeyCombo(keyCode: kVK_Space, carbonModifiers: cmdKey + optionKey)

2. 执行某个操作

全局键盘快捷键也可以用来执行某个操作。例如,我们可以设置 Command+Shift+D 快捷键来执行复制操作:

Swift

let hotKey = MASShortcut(keyCode: kVK_ANSI_D, modifierFlags: NSEvent.ModifierFlags(arrayLiteral: [.command, .shift]))

hotKey?.keyCombo = KeyCombo(keyCode: kVK_ANSI_D, carbonModifiers: cmdKey + shiftKey)

3. 切换窗口

全局键盘快捷键还可以用来切换窗口。例如,我们可以设置 Command+ 快捷键来切换不同的窗口:

Swift

let hotKey = MASShortcut(keyCode: kVK_ANSI_Grave, modifierFlags: NSEvent.ModifierFlags(arrayLiteral: [.command]))

hotKey?.keyCombo = KeyCombo(keyCode: kVK_ANSI_Grave, carbonModifiers: cmdKey)

4. 关闭应用程序

全局键盘快捷键还可以用来关闭应用程序。例如,我们可以设置 Command+Q 快捷键来关闭应用程序:

Swift

let hotKey = MASShortcut(keyCode: kVK_ANSI_Q, modifierFlags: NSEvent.ModifierFlags(arrayLiteral: [.command]))

hotKey?.keyCombo = KeyCombo(keyCode: kVK_ANSI_Q, carbonModifiers: cmdKey)

通过设置全局键盘快捷键,我们可以为 Mac 托盘应用程序增加更多的便利性和用户体验。无论是打开应用程序、执行某个操作、切换窗口还是关闭应用程序,全局键盘快捷键都可以帮助用户更快速地完成任务。

希望本文能够帮助你了解如何在 Mac 托盘应用程序中设置全局键盘快捷键,并提供了一些常见的示例代码供参考。在实际开发中,你可以根据自己的需求来设置适合的全局键盘快捷键,以提高应用程序的易用性和效率。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号