アプリケーションにバンドルされるサービスを作成しています。ユーザーはSafari(または別のWebブラウザー)でリンクを右クリックしてサービスを呼び出し、リンクを処理できるようにする必要があります(ユーザーが右クリックしたときに選択されるテキストだけではありません)。
私ができない唯一のことは、リンクが指すURLを取得することです。serviceメソッドを使用すると、からNSPasteboard
読み取ることができます。これをと呼びますpboard
。
選択したHTMLを取得しようとするのは明らかですが[pboard stringForType:NSPasteboardTypeHTML]
、それはnilを返しました。そこで[pboard types]
、を呼び出したところ、「public.utf8-plain-text」とNSStringPboardTypeが返されました。したがって、このペーストボードはプレーンテキストの文字列のみをサポートしているようです。
(typesはとnil[pboard addTypes:types owner:self]
を含む配列です)を呼び出してみましたが、を呼び出しても違いはありませんでした。NSPasteboardTypeHTML
stringForType:
[pboard types]
プレーンな文字列タイプのみを返す場合、どういうわけかペーストボードからHTMLを抽出できますか?ペーストボードに何を置くか、および/またはサービスが呼び出されたときに何を読み取るかを制御できますか?