이미지 경로가 포함 된 NSTableView에서 행을 드래그하여 NSImageView 위에 놓으면 드래그 한 행의 이미지가 이미지 뷰에 표시되어야합니다. 도움을 주신NSTableView에서 NSImageView로 드래그 드롭
1
A
답변
1
먼저 table data source에서 테이블 행을 드래그하는 데 필요한 메소드를 구현하십시오. 행을 나타내는 데이터를 드래그해서 하나 이상의 데이터 유형으로 붙여 넣습니다. 이를 위해 사용할 경로 유형은 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에서 다른 osx 응용 프로그램으로 파일을 드래그
- 2. .app 파일을 NSImageView로 드래그 앤 드롭하여 파일 경로를 얻습니다.
- 3. NSImageView로 NSBox의 setContentView를 설정하지 못했습니다.
- 4. GWT-드래그 & 드롭 (드래그 앤 드롭) 레이아웃 질문
- 5. 플렉스 드래그 앤 드롭
- 6. jquery 드래그 앤 드롭
- 7. PyQt의 드래그 앤 드롭
- 8. PyQt4 드래그 앤 드롭
- 9. iPad에서 드래그 앤 드롭
- 10. QML에서 드래그 앤 드롭
- 11. iPhone 드래그/드롭
- 12. 드래그 앤 드롭 시뮬레이션?
- 13. ASP.NET에서 드래그 앤 드롭
- 14. 캔버스에서 드래그 앤 드롭
- 15. android에서 드래그 앤 드롭
- 16. 드래그 앤 드롭 복제본
- 17. jQuery 드래그 앤 드롭
- 18. MobileSafari의 드래그 앤 드롭?
- 19. JQuery 드래그 앤 드롭
- 20. 플렉스 드래그 앤 드롭
- 21. 플렉스 트리 드래그 드롭
- 22. 드래그 앤 드롭 - vb.net
- 23. 드래그 드롭 richfaces
- 24. Treeview의 드래그 앤 드롭
- 25. jQuery를 드래그 앤 드롭
- 26. ipad 드래그 앤 드롭
- 27. wpf의리스트 박스 드래그 드롭
- 28. 이미지로 드래그 앤 드롭
- 29. WPF의 드래그 앤 드롭
- 30. dojotoolkit의 드래그 앤 드롭
만 드래그 유형, 수신보기 (이미지보기)가 아닌 전송 뷰 (테이블 뷰)를 등록해야합니다. 테이블 뷰에서도 삭제를 허용하지 않으려는 경우가 아니라면 더 많은 데이터 소스 메서드가 필요합니다. –
또한, 당신이 싫어하는 것을 풀어 놓는 것을 잊지 마십시오. 메모리 관리 프로그래밍 가이드 (Cocoa) : http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/ –
예. 당신 말이 맞아요. 나는 그것을 구현할 것이다. 다시 한 번 감사드립니다. :) –