2

Web サーフィンをしていて大量のテキストを強調表示すると、コンテキスト メニューに [New TextWrangler Document with Selection] という項目が表示されます。

この機能をアプリで複製して、ユーザーが他のアプリケーションでテキストを選択するたびに、コンテキストメニューに「選択した新しい (マイアプリ) ドキュメント」項目が表示され、それをクリックすると、選択した私のアプリにテキスト?

アップデート

私自身の質問に答えるために、ここのサンプル コードに従いました: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/SysServices/Articles/providing.html

強調表示されたテキストに単純な rot13 暗号化サービスを実装します。しかし、それは機能していません。

上記のように、「テキストの暗号化」は「選択した新しい TextWrangler ドキュメント」のようにシステム設定メニューに表示されますが、実際にはアプリケーションのサービス メニューや、テキストが選択されているときに右クリックのコンテキスト メニューには表示されません。

Apple のドキュメントのサンプル コードが機能しない理由を教えてください。

ここの@PeterHoseyは、NSRequiredContextでもあります:

私のアプリ名は「simpleEncrypt」と呼ばれ、メッセージはAppleのサービス実装ガイドからコピーされたものとまったく同じです。

- (void)simpleEncrypt:(NSPasteboard *)pboard
userData:(NSString *)userData error:(NSString **)error;
4

2 に答える 2

0

サービスをいつ有効にするのが適切かを説明する辞書NSRequiredContextを、サービス ディクショナリに含める必要があります。そうするまで、デフォルトですべてのコンテキストで無効になっています。(有効にした後も表示されない理由はわかりませんが、これは必須の最初のステップです。)

于 2011-11-22T17:53:58.727 に答える
0

Translate Text アプリケーションの Info.plist では、NSStringPboardTypeサービスの送信タイプとしてを使用しています。

システムで宣言されたUTIリストには、これに相当する最新のものが であることが示されているpublic.utf8-plain-textため、サービスの send と return の型をそれに変更してみてください。

機能する場合は、すべてのプレーンテキストのバリアントをリストすることをお勧めします。それらは、Uniform Type Identifiers Reference にリストされています。に準拠するタイプですpublic.plain-text

于 2011-11-27T08:04:56.983 に答える