問題タブ [nsdraggingitem]

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.

0 投票する
4 に答える
2382 参照

macos - ドラッグアンドドロップされた画像をドラッグの途中でどのように変更しますか?

したがって、オブジェクトを1つのソースから複数の潜在的な宛先にドラッグしたいと思います。オブジェクトが各宛先の上にあるとき、私はそれを別の画像に「モーフィング」したいと思います。NSDragSourceの観点からこれを行う簡単な方法はありますか?

0 投票する
2 に答える
631 参照

cocoa - NSOutlineView ドラッグ画像

ビューおよびデータソース ベースの から項目をドラッグするときに使用する画像を変更したいのですNSOutlineViewが、フックが見つからないようです。改造してみた

rowViews、tableCellViews、およびNSOutlineViewそれ自体のサブクラスにありますが、役に立ちません。

デフォルトの画像(明らかにtableCellViewの画像とテキストフィールドから取得されたもの)がどこから来ているか知っている人はいますか?

0 投票する
1 に答える
530 参照

macos - NSPasteboardItemDataProvider を使用して NSDraggingSession でメイン スレッドをブロックしないようにする

Mac OS X アプリ (Cocoa) で、NSDraggingSession. はNSDraggingItem、 protocol を実装するオブジェクトを使用してNSPasteboardItemDataProvider、ユーザーがデータをドロップしたときにデータを提供します。

画像を扱っているので、関連するタイプはNSPasteboardTypePNGkPasteboardTypeFileURLPromisekUTTypeFileURLcom.adobe.photoshop-imageおよびpublic.svg-imageです。これらの画像は遠隔地にあるため、ペーストボードに提供する前に、インターネットからダウンロードする必要があります。

- pasteboard(pasteboard:item:provideDataForType:)次のような方法でメソッドを実装します。

  • 要求されたタイプが の場合、kPasteboardTypeFileURLPromise貼り付け場所を取得し、将来ファイルが書き込まれる予定の場所を含む URL 文字列をペーストボードに作成して設定します。

  • 要求されたタイプが の場合、kUTTypeFileURLファイルをダウンロードし、一時的な場所を指定して、ダウンロードしたファイルをその場所に書き込みます。次に、場所の URL 文字列をペーストボードに設定します。

  • 要求されたタイプが他のタイプの場合、ファイルをダウンロードNSDataしてペーストボードにプレーンを設定します。

これらの操作はすべてメイン スレッドで実行されるため、解消したい遅延が発生します。

これらの操作をバックグラウンド スレッドで実行し、メイン スレッドに戻ってペーストボードに最終データを設定しようとしましたが、メソッドが前に終了するため、これは機能しません。

誰もそれを達成する方法を知っていますか?