2017-01-06 39 views
0

私はSwift(newbie)が使っているMac OS(iOSではない)用の小さなユーティリティを作ろうとしています。フォーカステキストフィールドを編集するにはどうすればよいですか? (Swift、macOS)

このユーティリティは、 コマンドラインツールが他のアプリケーションによって起動されたか、または メニューバーアプリケーションであると思います。

の機能を実装しましたが、どのようにフォーカステキストフィールドを編集するのか分かりません。

テキストエディタ(atom、sublime、...このアプリケーションがトリガされたとき)からテキストを取得し、そのテキストを変更してテキストエディタに貼り付けます。私はこのアプリは、システム全体に働くようにしたい

私は

  1. 以下のものは現在アクティブ/集中テキストフィールドからテキストを取得する実装する方法を知りたいです。
  2. 現在アクティブ/フォーカスのあるテキストフィールドのテキストを削除します。
  3. 現在アクティブ/フォーカスのあるテキストフィールドにテキストを貼り付けます。 (テキストカーソルの前に一つだけの単語または行を意味する)

私は、コマンドラインツールとキーボードイベント(CGEvent)上でこれをしようとしている今は良いアイデアだと思いません。

助けてください!

答えて

0
  1. 私はあなたがdocs hereで説明したように、system serviceを実装する必要があると思います。

    「データをサービスに送信する」または「サービスからデータを受信する」(ペーストボードを使用して完了した)セクションの関連する部分(すべて読む必要があります)はhereです。

    あなたが共有アプリの拡張としてアプリケーションをパッケージ化する検討すべき代替ソリューション(おそらくより良い)として
  2. hereを参照)

+0

ありがとうございますが、私が思ったよりもはるかに難しいようです。 –

0

ApplicationServices frameworkでMacOSのアクセシビリティ機能を見てみましょう。具体的には、接頭辞が "AX"のクラス(アクセシビリティの接頭辞です)です。これは(特にスウィフトで)作業するのが一番楽しいことではありませんが、あなたが望むものをそれで達成することができます。

関連する問題