NSPasteboard setString: forType: NEIN zurückgibt unter Leopard, fein in Snow Leopard
-
30-09-2019 - |
Frage
Der folgende Code ist von einem NSTableViewDataSource
, wo ich impliement Drag & Drop bin versucht.
Kann mir jemand sagen, warum die setString:forTypes:
Methode in der folgenden Code NO
unter Leopard? Es funktioniert gut in Snow Leopard. Ich überprüfte die „ Pappen Themen zur Programmierung für Cocoa “ legacy Dokument, aber ich kann nicht herausfinden, was ich falsch mache.
- (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;
}
Lösung
Dies ist eine wilde Vermutung, aber die Daten überprüft. Dass pboard
nicht gleich Null ist, und dass str
ist wirklich eine Zeichenfolge
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow