我想從NSTableView行拖動文件以將其複製到另一個應用程序(即Finder)。我實現了本指南的前兩個步驟('配置您的表視圖','開始拖動操作'),並認爲這將做伎倆: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TableView/Tasks/UsingDragAndDrop.html將文件從NSTableView拖到其他osx應用程序
但是,當我試圖拖動一行時,行文字跟隨我的鼠標,但文件在發佈時不會複製。下面就是我在初始化時發送給我的UITableView:
#define librarySongDataType @"NSFileContentsPboardType"
- (void)awakeFromNib
{
[self setDraggingSourceOperationMask:NSUIntegerMax forLocal:YES]; // allow interapplication drags
[self registerForDraggedTypes:[NSArray arrayWithObject:librarySongDataType] ]; // NSFileContentsPboardType
}
這裏是我如何處理我的NSTableView的數據源(一個NSArrayController)的阻力:
- (BOOL)tableView:(NSTableView *)aTableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard
{
NSLog(@"writeRowsWithIndexes");
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:rowIndexes];
[pboard setData:data forType:librarySongDataType];
return YES;
}
要清楚,我米不試圖拖動文件到我的表格視圖,我只是試圖拖出文件。
我想你的意思是`NSTableView`。 `UITableView`只在iPhone上。 – d11wtq 2010-12-02 10:09:09
啊,對不起,是的。我的意思是NSTableView。感謝您的更正。編輯。 – tassock 2010-12-02 18:31:22