イメージパスを含むNSTableViewから行をドラッグし、NSImageViewにドロップする必要があります。ドラッグされた行のイメージがイメージビューに表示されます。ヘルプNSTableViewからNSImageViewへのドラッグドロップ
1
A
答えて
1
まず、table data sourceに、テーブル行のドラッグに必要なメソッドを実装します。行を表すデータを1つ以上のデータ型のドラッグペーストボードに配置します。これに使用するタイプの1つはNSFilenamesPboardType
で、パス名の配列をとります。
次に、NSFilenamesPboardType
を処理できるNSImageViewのサブクラスを作成します。 (the NSDraggingDestination informal protocolからメソッドを実装する必要があります)。次に、NSImageViewの代わりにこのサブクラスのインスタンスをイメージビューにし、NSFilenamesPboardType
を表示するregisterを表示させます。
2
ありがとうございます。それは本当に働いた。 NSStringPboardTypeとNSFilenamesPboardTypeのNSImageViewとNSTableViewを登録しました。その後、私は 次のコードを使用して、TableViewデリゲートで。
- (BOOL)tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard*)pboard
{
NSString *string = [filePath objectAtIndex:[rowIndexes firstIndex]];
[pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
[pboard setString:string forType:NSStringPboardType];
return YES;
}
NSImageView NSDragging宛先非公式プロトコルでは、次のコードを使用します。
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
{
NSString *str = [[sender draggingPasteboard] stringForType:NSStringPboardType];
myImage = [[NSImage alloc] initWithContentsOfFile:str];
[self setImage:myImage];
[self setNeedsDisplay: YES];
return NSDragOperationCopy;
}
歓声:)
関連する問題
- 1. NSTableViewからFinderへのドラッグドロップの問題
- 2. Xcode Cocoa - NSTableViewからFinderへのドラッグドロップ
- 3. MySQLからNSTableViewへのNSArray
- 4. Thunderbirdからのドラッグドロップ処理
- 5. EXC_BAD_ACCESSを与えるNSImageViewへのアクセス
- 6. NSTableViewのMac appの目的のcのドラッグドロップ中に青い線を削除
- 7. NSImageView
- 8. はNSImageView
- 9. Blurry NSImageView
- 10. NSTableViewとFinderからドラッグ&ドロップ
- 11. NSImageViewダブルクリックのアクション
- 12. NSVisualEffectViewのNSImageView
- 13. コアデータのNSTableViewへの自動バインド
- 14. NSTableViewの管理オブジェクトへのアクセス
- 15. ドラッグドロップ中のハンドルキーダウン
- 16. ドラッグドロップ中のMFC:MessageBox
- 17. ドラッグドロップの内容
- 18. Swift OSX NSImageViewドラッグアンドドロップ
- 19. NSImageView +背景色
- 20. ハイライトNSImageView - Objective-c
- 21. は、NSTextFieldはNSImageView
- 22. NSTableViewの配列からオブジェクトを削除
- 23. キャンバスパネルのカントのドラッグドロップ
- 24. JSTreeドラッグドロップの問題
- 25. C#ドラッグドロップの問題
- 26. Extjs - ドラッグドロップの制限
- 27. Flex TabBarドラッグドロップ
- 28. C#PropertyGridドラッグドロップ
- 29. WinFormユーザーコントロール - ドラッグドロップ
- 30. iPhoneアプリ:ドラッグドロップUIImageView
あなたが唯一のドラッグタイプのため、受信ビュー(イメージ図)ではなく、送信ビュー(テーブルビュー)を登録する必要があります。テーブルビューでのドロップも許可しない限り、それ以上のデータソースメソッドが必要です。 –
また、あなたが奪ったものを解放することを忘れないでください。 Cocoaのメモリ管理プログラミングガイドを参照してください。http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/ –
はい。あなたが正しいです。私はそれを実装します。 ありがとうございました。 :) –