0

App Delegate を NSTextView のデリゲートとして設定した小さなテスト アプリをセットアップしました。

そこで、次の NSTextView デリゲート メソッドを提供します。

- (BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString

を生成する入力ソースを特定したいと思いreplacementStringます。

replacementString主に、が Character Viewer ([編集] > [特殊文字...]) からのものか、キーボードからのものかを調べることに興味があります。

Character Viewer が「選択」されているかどうか (画面上と画面外) に関する情報を提供できる Carbon Text Input API の使用を調べましたが、テキスト文字列の生成に責任があるかどうかを判断する方法が見つかりません。

これを行う理由は、Character Viewer を利用して Unicode 文字を HTML エンティティに変換する単純なプラグインを作成しているためです。Character Viewer にはすべてのキャラクターが 1 か所にあり、OS レベルで使用できます。自分で書くよりも、それを使うほうが理にかなっているようです。

これは Cocoa または Carbon で実行できますか?

どんな助けでも大歓迎です。

ありがとうございました。

4

1 に答える 1

1

次のコードから、テキスト入力ソースに関する知識が見つかりました。

CFArrayRef TISCreateInputSourceList (
   CFDictionaryRef properties,
   Boolean includeAllInstalled
);

アップルのドキュメント

あなたにも役立つかもしれない次のリンクからそれについていくつかのアイデアを得ました. 乾杯。

于 2012-06-18T19:01:47.713 に答える