Un drop qui fait de la résistance dans un tableau
muqaddar
Administrateur
Soit un controlleur avec son accesseur sur un NSMutableArray.
Soit un NSArrayController sous-classé qui implémente les méthodes drag & drop de NSTableView.
Soit un NSTableView sous-classé dont les colonnes sont correctement bindées.
Tout de petit monde fanfaronne ensemble et s'affiche correctement.
Mais c'est au niveau du drag & drop que ça foire. Si le drag est bien pris en compte, le drop ne s'effectue pas.
Je regarde donc ds la méthode acceptDrop :
Méthode qui est bien prise en compte... bref rien ne se passe... drop non effectué.
Une idée ? :why?:
Soit un NSArrayController sous-classé qui implémente les méthodes drag & drop de NSTableView.
Soit un NSTableView sous-classé dont les colonnes sont correctement bindées.
Tout de petit monde fanfaronne ensemble et s'affiche correctement.
Mais c'est au niveau du drag & drop que ça foire. Si le drag est bien pris en compte, le drop ne s'effectue pas.
Je regarde donc ds la méthode acceptDrop :
- (BOOL)tableView:(NSTableView*)tv acceptDrop:(id <NSDraggingInfo>)info row:(int)row dropOperation:(NSTableViewDropOperation)op<br />{<br />  if (row < 0) {<br /> row = 0;<br /> }<br />  <br />  // if drag source is self, it's a move<br />  if ([info draggingSource] == tableView)<br />  {<br /><br /> NSPasteboard *pboard = [info draggingPasteboard];<br /> NSArray *rows = [pboard propertyListForType:MovedRowsType];<br /> NSIndexSet *indexSet = [self indexSetFromRows:rows];<br /> <br /> [self moveObjectsInArrangedObjectsFromIndexes:indexSet toIndex:row];<br /> <br /> // set selected rows to those that were just moved<br /> // Need to work out what moved where to determine proper selection...<br /> int rowsAbove = [self rowsAboveRow:row inIndexSet:indexSet];<br /> <br /> NSRange range = NSMakeRange(row - rowsAbove, [indexSet count]);<br /> indexSet = [NSIndexSet indexSetWithIndexesInRange:range];<br /> [self setSelectionIndexes:indexSet];<br /> <br /> return YES;<br />  }<br />}
Méthode qui est bien prise en compte... bref rien ne se passe... drop non effectué.
Une idée ? :why?:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
j'avoue ne pas tout suivre dans le code, mais il parait simpliste par rapport a l'ensemble que j'ai pu glaner de ci de là ,
Je suis en train de faire une classe de base DNDArrayController...
Avec un peu de chance ça de devrait pas tarder...
Par contre ta méthode ne renvoi pas NO par défaut