2011-08-09 2 views
1

Je voudrais utiliser NSTableView sans the NSTableViewDataSource Methods mais juste comme une vue normale. draggingEntered: et draggingExited: sont appelées mais quand je renverrai NSDragOperationCopy, je ne vois pas le pointeur de la souris plus le vert et performDragOperation: ne s'appelle pas.Est-ce que NSTableView peut gérer les méthodes normales de glisser-déposer?

Je le sous-classé NSTableView avec ces méthodes:

- (void)awakeFromNib 
{ 
    [self registerForDraggedTypes: [NSArray arrayWithObject: NSFilenamesPboardType]]; 
} 

- (NSDragOperation)draggingEntered: (id <NSDraggingInfo>)sender 
{ 
    NSLog(@"draggingEntered"); //Gets called 
    return NSDragOperationCopy; 
} 

- (void)draggingExited: (id <NSDraggingInfo>)sender 
{ 
    NSLog(@"draggingExited"); //Gets called 
} 

- (BOOL)performDragOperation: (id <NSDraggingInfo>)sender 
{ 
    NSLog(@"performDragOperation"); //Doesn't get called 
    return YES; 
} 

Répondre

0

La documentation indique qu'il est conforme au protocole NSDraggingDestination et NSDraggingSource, donc oui il faut remettre glisser-déposer normale.

Vous pouvez essayer d'utiliser -registerForDraggedTypes: méthode de nsview.

+0

J'ai essayé cela, sinon 'draggingEntered:' et 'draggingExited:' ne seraient pas appelés. – Jim893

Questions connexes