問題タブ [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.
objective-c - ペーストボードの項目タイプを検出する方法
私は3つのタイプのオブジェクトを識別しようとしています:
- ファイルの URL の場合
- ディレクトリのURLの場合
- 単純な文字列の場合
今まで、私はこのコードしか持っていませんが、うまくいきません!
ここで、配列copydItemsの最初のオブジェクトを取得して「types」プロパティを呼び出そうとすると、クラッシュします!
objective-c - すべてのクラスの一般的なペーストボードからデータを読み取るにはどうすればよいですか?
現時点では、ココアの一般的なペーストボードからオブジェクトのリストを取得するために readObjectsForClasses: を使用しています。これは、NSString や NSImage などの特定のクラスのオブジェクトのみを取得する場合にいつでも機能します。
ただし、返される配列にペーストボード内のすべてのアイテムが含まれるように、すべてのクラスの配列を作成することなく、その中のすべてのオブジェクトを読み取ることができるようにしたいと考えています。
これは可能ですか?
macos - 一般のペーストボードに書き込めません
カスタム コア データ オブジェクトをドラッグするカスタム NSView があります。このメソッドを呼び出して、ドラッグ プロセスを開始します。
上記のメソッドを呼び出す前に、一般的なペーストボードを取得して、次のようなタイトルを設定します。
しかし、呼び出した場合に文字列を設定した直後:
私は何も得ません。
次のようなペーストボードを作成すると:
それは機能します。ということで、別の定番台紙を手に入れてみました
しかし、これもデータを書き込めません。
このメソッドを mouseDragged:(NSEvent *)event; から呼び出しています。私のアプリケーションはサンドボックス化されています。何か案は ?
objective-c - RTF データをペーストボードにコピーすると、NSPasteboard がテキストを読み取れない
NSPasteboard を使用してデータを読み取り、受信したデータでアクションを実行しています。
具体的には、以下のような優先度の高い情報に興味があります。
- ファイルパス
- テキストデータ
- 画像データ (これは画像ファイルをコピーするのではなく、画像の実際の部分をコピーすることです。たとえば、エディターで画像を開いて選択し、command + v を押す場合)
これは私がコードに持っているものです
現在、必要なデータを取得できるかどうかをテストしているだけです。そのため、Destkop でいくつかのファイルを選択すると、選択したファイルの URL がファイルに含まれます。それでうまくいきます。
同様に、画像の一部を選択してクリップボードにコピーすると、imageData にデータが含まれており、それを別のファイルに書き込むと、選択した部分だけがコピーされたことがわかるので、それも問題ありません。また、画像「ファイル」をクリップボードにコピーすると、imageDataもnilにならないことを理解していますが、最優先事項はファイルURLにあり、必要なことを行う場合であるため、問題ありません。
私が遭遇した問題は、ペーストボードからのテキストの読み取りに関連する行にあります。
問題の説明:
このページの URL をコピーしたところ、「text」と「text2」の両方にペーストボードからの文字列が含まれています。だからここでいいです:)
TextEdit で開いた .cs コード ファイルからいくつかの行をコピーすると、クリップボードに "public.utf8-plain-text" と "NSStringPboardType" があることが示されますが、"text" と "text2" はどちらも nil です。
同じ C#.NET .cs ファイルから、たとえば次のように改行せずに 1 つの単語を選択します。「System.Threading」、クリップボードは、「public.utf8-plain-text」と「NSStringPboardType」があり、「text」と「text2」の両方にコピーされたテキストがあることを示していますが、スペースや行でコピーされたものはありません。「myProject.Core.Helpers」は機能しますが、「namespace myProject.Core.Helpers」は機能しません。
同様に、RTF ファイルからいくつかのテキストをコピーします。クリップボードには、同じ古い "public.utf8-plain-text" および "NSStringPboardType" タイプと一緒に多くの RTF 関連情報があることが示されますが、やはり "text" です。 "text2" と、今回は "rtfText" はすべて nil です。
では、すべての場合に必要なテキストをクリップボードから取得するにはどうすればよいでしょうか? RTF データにはテキストよりも多くのデータを含めることができることは知っていますが、文字列ファイルにテキストを出力することだけに関心があります。
どんな助けでも大歓迎です。
ありがとう!
objective-c - NSPasteboard で大きな画像を避ける
私は、ユーザーが他のアプリケーションから画像ファイルを取得できるようにするための媒体として NSPasteboard を利用するアプリケーションに取り組んでいます。
時折、ユーザーが非常に大きなイメージをコピーしたい場合があります。これは、ペーストボードが 30 MB のファイルでチョークするため、メイン スレッドがかなり遅くなる可能性があります。
ペーストボードのデータ サイズに制限を設定する (超過するとエラーになる) 方法や、データに触れずにデータ サイズを取得する方法はありますか? ペーストボードからデータ サイズを要求することはできません。これを行うには、ペーストボードに既に大きな画像データが含まれている必要があります (これでは遅すぎます)。
ありがとう!