5

私は、プレーンな「dot.txt」ファイルを NSWindow にドラッグしてデータを読み込むことができる、絶対に必要最低限​​ のコードを書き込もうとしています(それ以上のことはありません)が、私が見つけたすべての例は画像や NSViews など..Apple の「Cocoa のドラッグ アンド ドロップ プログラミング トピック」ドキュメントの「ファイル コンテンツのドラッグ」セクションでは、プレーンな NSWindow (NSView などではなく) へのドラッグが可能であることを確認しており、私が何をしているのかを正確に説明しているようです。やろうとしていますが、比較的初心者なので、画像やフレームへの参照はまだ混乱しています.

「initWithFrame」または「initWithCoder」メソッドと、登録するタイプを言う以外に、「registerForDraggedTypes」をどこに置くかを教えてくれる人がいますか? ウィンドウがドラッグを認識したら、後で他の「performDragOperation」と「draggingEntered」について心配することができます。

ありがとう :-)

4

1 に答える 1

6

これは私が取り組んでいるコードの一部です。このメソッドは、新しいプロジェクトを作成したときに見つけることができます。

-(void)applicationDidFinishLaunching:(NSNotification*)aNotification
{       
    [window registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]]; 
}

私も初心者です。とにかく、これは私のために働いた。

そして、これは重要です。このオブジェクトのドロップメッセージを処理するには、このオブジェクトをウィンドウオブジェクトに接続する必要があります

MainMenu.xibを開くと、InterfaceBuilderがポップアップ表示されます。Interface Builderで、「App Delegate」(このオブジェクト)を「Window」の「delegate」アウトレットに接続します。(「インスペクター」パネルに「デリゲート」アウトレットがあります)これで、「アプリデリゲート」は「ウィンドウ」のイベントメッセージを受信します。

次に、同じクラスファイルにメソッドを追加します。

-(NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender
{
    return NSDragOperationGeneric;
}
-(BOOL)prepareForDragOperation:(id < NSDraggingInfo >)sender
{
    NSPasteboard* pbrd = [sender draggingPasteboard];
    // Do something here.
    return YES;
}
于 2010-01-10T08:27:56.127 に答える