MacFeeling Blog

マックな感じ …

公開 : 2022年8月8日
0件のコメント

MASShortcutをSwiftから使う

グローバルホットキーはDDHotKeyを使ってきましたが、

ショートカットキーラウンチャー その3(DDHotKey) | MacFeeling Blog

今回はMASShortcutを使ってみることに

GitHub - shpakovski/MASShortcut: Modern framework for managing global keyboard shortcuts compatible with Mac App Store. More details:

環境
macOS Monterey 12.6
Xcode 13.4.1
インターフェース: Storyboard
使用言語:Swift

最初Swift Package Managerで導入しようとしたら、私の環境ではエラーが出てしまったので、ソースコードをビルドして、MASShortcut.frameworkをプロジェクトに追加しました。

Xcodeのプロジェクトに追加したら、File » New » FileでHeader Fileを選択、名前は「Bridging-Header.h」にしてください。

追加した、「Bridging-Header.h」に、以下の#import文2行を追加してください。

#ifndef Bridging_Header_h
#define Bridging_Header_h

#import <Cocoa/Cocoa.h>
#import <MASShortcut/Shortcut.h>

#endif /* Bridging_Header_h */

グローバルホットキーの設定部分を作成
ウインドウにCustom Viewを設置して、ClassにMASShortcutViewを設定

swiftファイル(例ではViewControler.swift)に、import MASShortcutと
@IBOutlet weak var shortcutKeyView: MASShortcutView!を追加
@IBOutlet を設置したCustomViewに繋げます

とりあえず、以下のコードを記入すれば、設定したグローバルキーを自動保存して、次回起動時に読み込んで登録してくれるようです。
    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        
        // Pick a preference key to store the shortcut between launches
        let kPreferenceGlobalShortcut = "GlobalShortcut"
        
        // Associate the shortcut view with user defaults
        self.shortcutKeyView.associatedUserDefaultsKey = kPreferenceGlobalShortcut
        
        MASShortcutBinder.shared().bindShortcut(withDefaultsKey: kPreferenceGlobalShortcut, toAction: {
            print("設定したグローバルキーが押された")
        })
        
    }

複数のMASShortcutViewを設置するには、kPreferenceGlobalShortcutの値を変えればいいみたいです。
例えば1つ目が"GlobalShortcut"で、2つ目が"GlobalShortcut2"のような感じ

@IBOutlet weak var shortcutKeyView: MASShortcutView!
@IBOutlet weak var shortcutKey2View: MASShortcutView!

//1つ目
let kPreferenceGlobalShortcut = "GlobalShortcut"
self.shortcutKeyView.associatedUserDefaultsKey = kPreferenceGlobalShortcut
MASShortcutBinder.shared().bindShortcut(withDefaultsKey: kPreferenceGlobalShortcut, toAction: {
      print("設定したグローバルキーが押された")
 })
    
//2つ目    
let kPreferenceGlobal2Shortcut = "GlobalShortcut2"
self.shortcutKey2View.associatedUserDefaultsKey = kPreferenceGlobal2Shortcut
MASShortcutBinder.shared().bindShortcut(withDefaultsKey: kPreferenceGlobal2Shortcut, toAction: {
      print("設定したグローバルキー2が押された")
})

番外編

使用するグローバルホットキーが固定されていて、手動で登録を行う場合は
例えば、「コマンド+シフト+K」なら

//グローバルホットキーを設定する
 let shortcut = MASShortcut(keyCode: kVK_ANSI_K, modifierFlags: [.command, .shift])

//グローバルホットキーを登録、キーが押されると
 MASShortcutMonitor.shared()?.register(shortcut, withAction: {
            print("キーが押されました。")
 })
 
//アプリを終了する際に登録を解除する 
MASShortcutMonitor.shared()?.unregisterShortcut(shortcut)
        

公開 : 2022年8月3日
0件のコメント

「Prefs Editor 1.4」が公開

Thomas Tempelmann - Prefs Editorのページにて、Registry Editorの「Prefs Editor 1.4 」が公開されていました。

1.3.2にてApple Siliconに対応しました。

変更点

  • New: A defaults write command can be put into the pasteboard via cmd-shift-C on a selected item. Caution: If you copy an array or dictionary, the copied values will lose their type information and become strings, due to limited support by the defaults command (exception: 'Data' entries remain intact).
  • New: The Domains window can remain open after opening a domain. See menu bar under File / Options.
  • New: The window positions are now remembered. See menu bar under File / Options.
  • Fix: Opening prefs whose plist file is reached via a symlink works now.
  • Fix: Opening prefs whose name contains non-ASCII characters works now.

公開 : 2022年8月1日
0件のコメント

「GPXPicker 1.2.0」を公開

qtcut.jpgApple Watch で記録しiPhoneに格納しているワークアウトの経路データをマックの GPX 表示アプリ(軌跡 )で利用するために、 GPX データとして取り出してマックへ転送するiPhone向けアプリです。

変更点

  • [変更] システムの設定に関わらず、マップをライトモードで表示できるようにしました。
  • [変更] システム要件をiOS 14以降に変更しました。

MacFeeling Softwareにて紹介しています。

公開 : 2022年7月31日
0件のコメント

「CotEditor 4.3.2」が公開

アーカイブ - CotEditorのページにて、エディタの「CotEditor 4.3.2」(non-AppStore版)が公開されていました。

改良

  • 非AppStore版: Sparkleを2.2.1に更新

修正

  • プリント時にタブ幅の設定が反映されなかった不具合を修正
  • 文章の方向が右から左のときにタブ文字の幅が誤って描画されていた不具合を修正

公開 : 2022年7月30日
0件のコメント

「キセキ 1.6.1」を公開

qtcut.jpgウォーキング・サイクリング等の経路データを記録し、その経路データを、マックの GPX 表示ソフト「軌跡」で利用するために、 GPX データとして取り出してマックへ転送するiPhone向けアプリです。また、モニタリング領域を登録すると、動作中に登録した領域に入ると一時停止、領域から出るとデータ取得を再開する、ジオフェンス機能もあります。

変更点

  • [新規] システムの設定に関わらず、マップをライトモードで表示できるようにしました。
  • [修正] ダークモードでアイコン表示に不具合があったのを修正しました。

MacFeeling Softwareにて紹介しています。

公開 : 2022年7月29日
0件のコメント

「SoundSource 5.5.4」が公開

Rogue Amoeba | SoundSource: A Superior Sound Controlのページにて、アプリ毎にボリュームやイコライザーの設定をすることができる、「SoundSource 5.5.4」が公開されていました。(有料)

変更点

  • Improvements in ACE 11.8.3
    The Audio Capture Engine (ACE) has been updated to 11.8.3, with further improvements for even more reliable audio capture.
  • The “Get Devices” Shortcut will now correctly list all available input devices.
  • Piezo will no longer incorrectly appear as an input device for SoundSource. That was weird and wrong!
  • A bug which could cause some Audio Unit plugins to fail to load, or crash, has been squashed.
  • Software Update checks now occur only after the Welcome Window has been closed.