2012-01-29 7 views
0

MacRuby内のグローバルUI選択を読むにはどうすればよいですか?たとえば、プレビューで選択したテキストのMacRubyを使ってグローバルセレクションを読むには?

Rubyやココアには経験を持っていない、私は思い切ってし、翻訳して自分自身を支援するために、小さな辞書アプリを書くことにしました。すべての部分が準備ができて、ちょうどホットキーで選択されたテキストを読む方法を知る必要があります。

答えて

1

1つではないので、できません。

グローバル選択が1つありません。テキストビュー(またはその他の選択可能なテキストを含むビュー)ごとに1つのテキスト選択があります。ウィンドウにはこのようなビューがいくつあってもよく、アプリケーションにはそのようなウィンドウがいくつでも開いていてもよく、ユーザーはそのようなアプリケーションをいくつでも実行できます。

さらなる問題はないすべてのアプリケーションがココアであるということです。これらのうち、のほとんどはにアクセスできますが、すべてではありません。カスタムビューはあなたを動かすことがあります(例えば、グラフィックスエディタのTextツールを考えてみてください)。ユーザーが非Cocoaアプリケーションでテキストを選択した場合、そのテキストを読むことはできません。

フォーカスを当てたアプリケーションのフォーカスされたウィンドウで選択したテキストにアクセスするには、アプリケーションがServiceを提供するようにするのが最善の方法です。ほとんどすべてのCocoaアプリケーションから呼び出すことができますより啓発されたCarbonアプリのいくつかが含まれます。それはあなたができる最高です。

Apple独自の辞書は、AppKitで特別な扱いを受けています(CocoaとCarbonアプリのフローティングディクショナリパネルを含む)。それ以外は同じ方法で動作します。サービスメニューに表示されるサービスを提供しますそれをオフにしていない)。

+0

ありがとう、ピーター。 Objective-C/Cocoaでサービスを実装する必要があるのでしょうか、それともMacRubyを使うことができますか? MacRubyを使用したService APIの初心者の良い例を知っていれば、感謝しています。 Cheers – user1177059

+0

@ user1177059:Carbonを使うことはできますが、Cocoaを使うべきです。あなたはMacRubyでそれを行うことができます。 –

関連する問題