1

アプリを書こうとしています。これにより、ユーザーは別のユーザーにドラッグできますNSButton。ドロップしたときに、タイトルをボタンにドロップしたいと思います。

NSButtonドラッグ可能にする方法が見つかりません。出来ますか?

4

1 に答える 1

5

最初の警告: これはユーザーを混乱させるように聞こえます。ボタンは、現実世界のボタンをエミュレートすることを目的としています。ドラッグするのではなく、プッシュします。

そうは言っても、NSButton のサブクラスで行うことは確かに可能です。

ドラッグソース

  1. ドラッグ ソース メソッド dragingSourceOperationMaskForLocal: を実装します。タイトルをコピーしているように聞こえるので、NSDragOperationCopy を使用することをお勧めします。
  2. mouseDragged: メソッドで dragImage:at:offset:event:pasteboard:source:slideBack: を呼び出します。ドラッグ pBoard ( [NSPasteboard pasteboardWithName:NSDragPboard]) を使用して、ボタンのタイトルをそこにコピーします。画像の場合、ボタンを NSImage に描画し、それをドラッグ画像として使用するか、アイコンまたはタイトルだけを使用することもできます。

ドラッグ先

  1. registerForDraggedTypes: を使用して、カスタム ボタンを登録し、タイトル文字列を受け入れることができるようにします。
  2. 適切な値を返すために、ドラッグ先のメソッド dragEntered: および performDragOperation: を実装します。dragUpdated: や dragExited: など、視覚的なフィードバックを提供するために使用できるメソッドが他にもいくつかあります。

ドラッグ アンド ドロップの実装に関する情報はたくさんあります。Apple のドキュメントを読む: Drag & Drop Programming TopicsおよびPasteboard Programming Guide

于 2010-10-04T14:19:15.320 に答える