gpt4 book ai didi

cocoa - NSTableView 删除应用程序文件,出了什么问题?

转载 作者:行者123 更新时间:2023-12-03 16:39:04 24 4
gpt4 key购买 nike

我有以下代码来支持将应用程序文件拖放到 TableView 中。问题是当我拖放时我什至看不到绿色+。我认为这与 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;
}

提前致谢

最佳答案

registerForDraggedTypes 并不是在寻找文件扩展名数组;它需要一个 uniform type identifiers 数组。如果您想接受文件名,请使用 NSFilenamesPboardType:

 [self registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]];

然后,要仅接受 .app 文件,请检查扩展名并从 tableView:acceptDrop:row:dropOperation: 返回 YES,从 NSDraggingInfo and its pasteboard 获取适当的信息。

关于cocoa - NSTableView 删除应用程序文件,出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4839561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com