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;
}
War es hilfreich?

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
scroll top