2010-08-04 3 views
1

이 기능을 작동 시키려하고 있으며 무엇이 실종되었는지 확실하지 않습니다. 아이디어는 이미지를 NSTableView에 떨어 뜨려서 경로를 잡고 조작 할 수있게하는 것입니다. NSPastebouardTypeString에 대한 드롭을 얻을 수는 있지만, 필자의 삶에서 Finder에서 PNG를 tableview로 드래그하여 등록 할 수는 없습니다. 내가 뭘 놓치고 있니?PST 소스에서 드롭 다운 등록하려면 NSTableView를 가져 오십시오.

와 관계있는 코드 : Finder에서 드래그

- (void)awakeFromNib { 
    [imageTableView registerForDraggedTypes:[NSArray arrayWithObject:NSPasteboardTypePNG]]; 
} 

- (NSDragOperation)tableView:(NSTableView *)aTableView validateDrop:(id <NSDraggingInfo>)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)operation { 
    NSLog(@"Validate Drop"); 
    return NSDragOperationEvery; 
} 

- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id <NSDraggingInfo>)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation { 
    NSLog(@"Accept Drop"); 
    return YES; 
} 

답변

1

PNG 파일하지 PNG 데이터입니다. 그들은 파일 인입니다.이 파일들은 자체 판지 유형을 가지고 있습니다. (파일이기 때문에 떨어질 경우 메모리에 전체적으로로드되기를 원하지 않습니까? : D)

10.4 NSString의 NSArray를 NSFilenamesPboardType으로 지정했습니다. 10.5 이상 은 파일 배열을 제공합니다. URL은 NSURLPboardType입니다. 이전 API를 사용하고 있기 때문에 this document on 10.5- APIs applies (10.6은 대시 보드 API를 완전히 오버홀하여 iOS와 같은 기능을합니다).

+0

확인. 나는 그 때 오해했다. 10.6에서 NSURLPboardType 또는 NSFileNamesPboardType을 사용하지 않을까요? 나는 강제적 인 10.6 api를 보지 못했다. 그냥'writefiles :'메소드로, 나는 드래그 아웃을하는 것으로 이해했다. –