問題タブ [nspasteboard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - -[NSPasteboard writeObjects:] が NSURL オブジェクトの配列に対して NO を返すのはなぜですか?
IKImageBrowserView にデータを提供するために使用している NSArrayController があります。IKImageBrowserView から他のアプリケーションへのドラッグ アンド ドロップをサポートしたいと考えています。私のコードからの関連するメソッドは次のとおりです。
私のアプリは新しいので、10.6+ をターゲットにしています。ドキュメントによると、「Mac OS X v10.6 以降では、writeObjects を使用して、代わりに URL をペーストボードに直接書き込みます。」
書き込もうとしているオブジェクトが実際に NSURL オブジェクトであることを確認したので、プロセスがどこで中断しているのか、または問題をさらにトラブルシューティングする方法がわかりません。助けてくれてありがとう。
cocoa - NSStringPboardTypeは、必要な文字列ではなくxmlplistを提供します
アプリからテキスト(プレーンな文字列)をドラッグしようとしています。
コンソールに「マイテキスト」が表示されます。それで:
これをテキストエディタ(TextWrangler、TextEdit)にドラッグすると、次のようになります。
私は何が間違っているのですか?プレーンテキストをもう一方の端から取り出すにはどうすればよいですか?
objective-c - NSManagedObjectのNSPasteboardタイプ
アプリケーションの2つのテーブルビュー間でNSManagedObjectへの参照をドラッグする必要があります。NSManagedObjectへの参照を格納するために推奨されるNSPasteboardタイプは何ですか?
私の現在の解決策は、オブジェクトのNSManagedObjectIDのURIRepresentationをNSPasteboardTypeStringに格納することです。もっとエレガントな解決策があるのではないかと思います。
cocoa - ユーザーが自分のアプリから iCal にカレンダー イベントをドラッグ アンド ドロップできるようにするにはどうすればよいですか?
私はMacアプリを書いています。このアプリには、ユーザーがカレンダー イベントに変換できるようにしたい要素があります。ユーザーが要素を iCal にドラッグできるようにしたいと思います。できれば BusyCal も同様です。でもドラッグ台紙に何を載せたらいいのかわからない。
これらのイベントの URL プロパティを設定できるようにしたいと考えています。つまり、プラン テキストは (私の知る限り) 解決策ではありません。
iCalendar データがぴったりのようです。残念ながら、iCalendar の VEVENT 仕様の一部はイベントの開始時間と終了時間であり、iCal も BusyCal もこれらのプロパティのない VEVENT を好まないようです。ユーザーがイベントの時間をカレンダーのその場所にドラッグして選択できるようにしたいと思います。
この作業を行うためにペーストボードに何ができるか考えていますか?
cocoa - -[NSPasteboard types] がクラッシュする原因は何ですか?
お客様の 1 人に、貼り付け時に次のようなクラッシュが発生することがあります。
誰がこれを引き起こす可能性があるか考えていますか?
- ペーストボード オブジェクトは、私が知る限り有効ですが、内部でクラッシュします。
- これは通常、別のアプリから貼り付ける場合だと思いますが、他のアプリがペーストボードの所有権を誤って管理している可能性はありますか?
詳細については、 NSPasteboard は所有者オブジェクトを保持しますか? はい、ペーストボードは渡された所有者を保持します。したがって、このクラッシュは次のいずれかである必要があります。
- 私のコードの過剰リリース。これにより、ペーストボードがまだオブジェクトへの参照を保持している間にオブジェクトの割り当てが解除されます。ペーストボードとは関係なく問題が発生すると予想されるため、これはありそうもないと思います。また、それを示唆するクラッシュ (レポート) は 1 つも見たことがありません。
NSPasteboard
クロスアプリケーションの貼り付けを管理する方法で何かがうまくいかず、クラッシュします。誰かがそのようなことに遭遇したか、何が原因であるかを知っていますか?
cocoa - MacOSXサービスで選択したリンクのHTMLを取得する
アプリケーションにバンドルされるサービスを作成しています。ユーザーは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を抽出できますか?ペーストボードに何を置くか、および/またはサービスが呼び出されたときに何を読み取るかを制御できますか?
objective-c - NSPasteboard は所有者オブジェクトを保持しますか?
NSPasteboard
次のように呼び出すことができます。
つまり、ペーストボードは後で必要に応じてタイプのデータを提供するよう所有者に要求します。ただし、ドキュメントから見つけることができない (そして、明らかな出血を見逃している可能性があります) のは、owner
保持されているかどうかです。
実際には、私が心配しているのは、所有者が弱い参照である場合、割り当てが解除され、ペーストボードがそこからデータを要求しようとするとクラッシュする可能性があることです。
注:アプリを依存させるよりも、バグを追跡するための支援としてこれに関心があることを明確にする必要があります。しかし、私はドキュメントも明確にしたいと思っています。
cocoa - NSPasteboard が書き込まれるたびにコールバックを受け取ることはできますか?
Apple のPasteboard Programming Guideを読みましたが、特定の質問に対する回答がありません。
一般的なペーストボードに書き込まれたすべてのものを追跡する Cocoa アプリケーション (iOS ではなく OS X 用) を作成しようとしています (そのため、アプリケーションがコピーして貼り付けたときはいつでも、ドラッグ アンド ドロップではありません)。 、これも NSPasteboard を利用します)。基本的にバックグラウンドスレッドで一般的なペーストボードを常にポーリングし、 changeCountをチェックすることで、これを (ほぼ) 達成できました。もちろん、これを行うと、私は内部で非常に汚れた気分になります.
私の質問は、一般的なペーストボードに変更が加えられるたびに、何らかのコールバックを通じて私に通知するようにペーストボード サーバーに依頼する方法はありますか? NSPasteboard クラス リファレンスには何も見つかりませんでしたが、どこかに潜んでいることを願っています。
これを実現するもう 1 つの方法は、一般的なペーストボードの実装を、NSPasteboard のサブクラスと交換して、コールバックを発行するように自分で定義できる方法がある場合です。たぶん、このようなことが可能ですか?
これが App Store に準拠した公開 API で可能であれば非常に望ましいですが、非公開 API を使用する必要がある場合は、それも採用します。
ありがとう!
cocoa - 文字列の配列を NSPasteBoard に送信します
文字列または数値の配列をペーストボードに送信するにはどうすればよいでしょうか?
[pasteBoard writeObjects:] を使用してみましたが、それを行うには NSArray をサブクラス化する必要があるようです。プロトコルを要求します。
たぶん、アーカイブとアーカイブ解除、またはその他のアイデアですか?ありがとう、ホセ。
cocoa - ホットキーで現在の選択をコピーします
Mailなどの別のアプリケーションにある場合でも、ユーザーが新しいタスクを作成するときに、Cultured CodeがThingsで行うように、指定されたホットキーを押すと、現在の選択をコピーしたいと思います。ホットキーを機能させ、厚紙に物を置いたり、そこから物を取り出したりする方法を知っています。しかし、現在の選択を取得する方法がわかりません。
誰?ありがとう!