💻

SwiftでmacOSを操作するライブラリを作った

2023/01/26に公開1

はじめに

タイトルの通り、SwiftでmacOSを操作するライブラリを作ったのでその使い方を紹介します。
スターくれたら嬉しいです。
https://github.com/NakaokaRei/SwiftAutoGUI

インストール方法

SPMでインストールすることができます。macOSが対象のためiOSでは利用できません。追加後import SwiftAutoGUIするとライブラリが使えるようになります。

dependencies: [
    // Dependencies declare other packages that this package depends on.
    .package(url: "https://github.com/NakaokaRei/SwiftAutoGUI", branch: "master")
],
targets: [
    .target(
        name: "MyProject",
        dependencies: [..., "SwiftAutoGUI"]
    )
    ...
]

キー入力

以下のようにSwiftAutoGUIクラスのメソッド呼び出すことmacOSにキー入力の命令を送ることができます。対応しているキーはKeycode.swiftに書いてあります。

以下のサンプルのようにショートカットの入力もでき、例えばctrl + ←と命令を送ることで仮想デスクトップの移動などができます。

※現在はUSキーボードのみ対応しているため、JISキーボードだと正常に動作しない場合があります。(キー配列によってCGKeycodeの値が違う)

// 「ctrl + ←」のショートカット入力
SwiftAutoGUI.sendKeyShortcut([.control, .leftArrow])

// 音声アップ
SwiftAutoGUI.keyDown(.soundUp)
SwiftAutoGUI.keyUp(.soundUp)

マウス操作

マウス操作も同様にSwiftAutoGUIクラスのメソッドを呼びだすとマウスの移動、クリック、スクロールといった基本的な命令を発生させることができます。

// 現在の位置からdx、dyだけ移動
SwiftAutoGUI.moveMouse(dx: 10, dy: 10)

// 現在の位置でクリック
SwiftAutoGUI.leftClick()

// 現在の位置で各スクロール
SwiftAutoGUI.vscroll(clicks: 10) // up
SwiftAutoGUI.vscroll(clicks: -10) // down
SwiftAutoGUI.hscroll(clicks: 10) // left
SwiftAutoGUI.hscroll(clicks: -10) // right

最後に

今後はJISキーボードの対応、他OSの対応、イベントの追加などをしていきたいです。

株式会社ZOZO

Discussion