0

MacRuby 内でグローバル UI 選択を読み取るにはどうすればよいですか? たとえば、プレビューで選択したテキストの。

Ruby と Cocoa の経験がないので、思い切って翻訳を支援する小さな辞書アプリを作成することにしました。すべてのピースの準備ができました。ホットキーで選択したテキストを読み取る方法を知る必要があります。

4

1 に答える 1

1

無いから仕方ない。

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

さらなる問題は、すべてのアプリケーションが Cocoa ではないことです。それらのうち、ほとんどはアクセス可能ですが、すべてではありません。カスタム ビューを使用するとつまずくことがあります (たとえば、グラフィック エディターのテキスト ツールを考えてみてください)。ユーザーが Cocoa 以外のアプリケーションでテキストを選択すると、それを読むことができない可能性があります。

フォーカスされたアプリケーションのフォーカスされたウィンドウのフォーカスされたビューで選択されたテキストにアクセスしたい場合、それを行う最善の方法は、アプリケーションがServiceを提供するようにすることです。これは、ユーザーがほぼすべての Cocoa アプリケーションといくつかのより賢明な Carbon アプリ。それがあなたにできる最善のことです。

Apple 独自の辞書は、AppKit で特別な扱いを受けます (Cocoa および Carbon アプリでのフローティング辞書パネルの利用可能性を含む) が、それ以外は同じように機能します: すべてのサービス メニューに表示されるサービスを提供します (ユーザーがオンになっていない場合)。オフ)。

于 2012-01-30T01:01:26.987 に答える