我有以下代码支持将app文件放入表格视图中。问题是,当我拖放时,我甚至看不到绿色+。我认为它与registerForDraggedTypes:
有关,但我不确定。我尝试过很多教程,没有一个能为我工作。
- (void)awakeFromNib {
[apps registerForDraggedTypes:[NSArray arrayWithObject:@"app"]];
}
- (BOOL)tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard*)pboard
{
return YES;
}
- (NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id <NSDraggingInfo>)info proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)op
{
return NSDragOperationCopy;
}
- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id <NSDraggingInfo>)info
row:(int)row dropOperation:(NSTableViewDropOperation)operation
{
return YES;
}
提前致谢
答案 0 :(得分:2)
registerForDraggedTypes
没有查找文件扩展名数组;它需要一个uniform type identifiers数组。如果您想接受文件名,请使用NSFilenamesPboardType
:
[self registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]];
然后,要仅接受.app
个文件,请检查扩展程序并从tableView:acceptDrop:row:dropOperation:
返回“是”,从NSDraggingInfo
and its pasteboard获取相应的信息。