2009-05-24 8 views
1

Comment rendre une vue en plan susceptible d'être réorganisée (en la faisant glisser pour déplacer la position d'une ligne) comme une vue en tableau. Au moment où j'essaie de faire glisser une ligne, elle sélectionne simplement d'autres lignes. Comment puis-je le rendre réorganisable?Comment rendre une vue hiérarchique modifiable comme une vue de table?

+0

Allez les gens. – Joshua

+0

Hey @Joshua, je sais que cette question a près de 2 ans, mais j'imagine que vous avez finalement eu du succès? Si vous vouliez partager un peu de vous avez résolu celui-ci (sur un blog ou quelque chose), je suis sûr que beaucoup de gens en bénéficieraient. –

Répondre

6

Vous devez implémenter le drag'n drop stuff.

Voici les méthodes que vous devez implémenter dans votre source de données NSOutlineView.

- (NSDragOperation)outlineView:(NSOutlineView *)outlineView validateDrop:(id <NSDraggingInfo>)info proposedItem:(id)item proposedChildIndex:(int)index; 
- (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id <NSDraggingInfo>)info item:(id)item childIndex:(int)index; 

Vérifiez NSOutlineViewDataSource Protocol Reference pour obtenir des informations détaillées.

Vous devez également enregistrer les types de glisser votre outlineView

[outlineView registerForDraggedTypes: [NSArray arrayWithObjects: NSStringPboardType, NSURLPboardType, NSFilenamesPboardType,NSFileContentsPboardType, nil]]; 
+0

Où se trouve la source de données NSOutlineView? – Joshua

+1

Habituellement, vous devez l'implémenter vous-même comme les classes de délégués. Chaque classe qui implémente le protocole NSOutlineViewDataSource est qualifiée pour devenir une source de données pour un outlineview. – cocoafan

+0

Alors, où dois-je copier tout ce code, dois-je le mettre dans un nouveau fichier de classe? – Joshua

1

Si vous trouvez la documentation d'Apple difficile, essayez de lire Jonathan's post à re-commande. Ok, bien si c'est un peu trop, essayez l'exemple de code AbstractTree sur le site ADC d'Apple. Les méthodes de glisser-déposer sont mises en surbrillance dans les fichiers AppDelegate. Je ne veux pas paraître impoli, mais travaillez-vous à travers un tutoriel ou en regardant des références? Je demande parce que le simple fait de demander le code que vous pouvez coller ne vous sera pas utile: Il n'y a pas de code générique que vous pouvez ajouter. Il doit être écrit pour votre cas spécifique. Sans sachant à ce sujet, nous ne pouvons pas simplement écrire vos méthodes pour vous. Essayez et implémentez les exemples de méthodes de glisser-déposer à partir de AbstractTree, et si vous rencontrez toujours des problèmes, essayez de poster le code que vous avez écrit qui ne fonctionne pas.

+0

Je l'ai lu mais j'ai vraiment besoin du code pour implémenter Drag and Drop, mais je ne trouve pas le code dans les fichiers que je devrais faire, Pouvez-vous me le dire? – Joshua

+0

Ok, je l'avais mis en œuvre Dans mon projet xcode, je m'assurais que tout était le même que dans les exemples de projets, mais j'ai eu 5 erreurs, les voici: http://snapplr.com/epks – Joshua

+0

Je pense le problème peut être que vous devez travailler sur votre compréhension de Cocoa et Objective-C. Ces 5 erreurs sont assez explicites et faciles à corriger; mais vous semblez avoir copié du code dans votre classe; ce que j'ai dit ne marcherait pas. – Abizern

Questions connexes