以下代码来自NSTableViewDataSource
我试图实现拖放的地方。
谁能告诉我为什么setString:forTypes:
下面代码中的方法在NO
Leopard 下返回?它在雪豹中运行良好。我检查了“可可的粘贴板编程主题”遗留文档,但我无法弄清楚我做错了什么。
- (BOOL)tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard
{
NSString *str;
if ([tableView isEqualTo:databaseView]) {
str = [[commander databases] objectAtIndex:[rowIndexes firstIndex]];
} else if ([tableView isEqualTo:favouritesView]) {
str = [[commander favourites] objectAtIndex:[rowIndexes firstIndex]];
}
if (str != nil) {
NSArray *types = [NSArray arrayWithObject:NSStringPboardType];
[pboard declareTypes:types owner:nil];
if ([pboard setString:str forType:NSStringPboardType]) {
return YES;
} else {
[self handleErrorString:[NSString stringWithFormat:@"Error: Couldn't copy '%@' to pasteboard!", str]];
}
}
return NO;
}