MacRuby内のグローバルUI選択を読むにはどうすればよいですか?たとえば、プレビューで選択したテキストのMacRubyを使ってグローバルセレクションを読むには?
Rubyやココアには経験を持っていない、私は思い切ってし、翻訳して自分自身を支援するために、小さな辞書アプリを書くことにしました。すべての部分が準備ができて、ちょうどホットキーで選択されたテキストを読む方法を知る必要があります。
MacRuby内のグローバルUI選択を読むにはどうすればよいですか?たとえば、プレビューで選択したテキストのMacRubyを使ってグローバルセレクションを読むには?
Rubyやココアには経験を持っていない、私は思い切ってし、翻訳して自分自身を支援するために、小さな辞書アプリを書くことにしました。すべての部分が準備ができて、ちょうどホットキーで選択されたテキストを読む方法を知る必要があります。
1つではないので、できません。
グローバル選択が1つありません。テキストビュー(またはその他の選択可能なテキストを含むビュー)ごとに1つのテキスト選択があります。ウィンドウにはこのようなビューがいくつあってもよく、アプリケーションにはそのようなウィンドウがいくつでも開いていてもよく、ユーザーはそのようなアプリケーションをいくつでも実行できます。
さらなる問題はないすべてのアプリケーションがココアであるということです。これらのうち、のほとんどはにアクセスできますが、すべてではありません。カスタムビューはあなたを動かすことがあります(例えば、グラフィックスエディタのTextツールを考えてみてください)。ユーザーが非Cocoaアプリケーションでテキストを選択した場合、そのテキストを読むことはできません。
フォーカスを当てたアプリケーションのフォーカスされたウィンドウで選択したテキストにアクセスするには、アプリケーションがServiceを提供するようにするのが最善の方法です。ほとんどすべてのCocoaアプリケーションから呼び出すことができますより啓発されたCarbonアプリのいくつかが含まれます。それはあなたができる最高です。
Apple独自の辞書は、AppKitで特別な扱いを受けています(CocoaとCarbonアプリのフローティングディクショナリパネルを含む)。それ以外は同じ方法で動作します。サービスメニューに表示されるサービスを提供しますそれをオフにしていない)。
ありがとう、ピーター。 Objective-C/Cocoaでサービスを実装する必要があるのでしょうか、それともMacRubyを使うことができますか? MacRubyを使用したService APIの初心者の良い例を知っていれば、感謝しています。 Cheers – user1177059
@ user1177059:Carbonを使うことはできますが、Cocoaを使うべきです。あなたはMacRubyでそれを行うことができます。 –