2009-09-10 5 views
1

J'essaye de recharger un élément particulier dans ma vue générale en utilisant la fonction ou reloaditem:reloadchildren dans NSoutlineView mais son écrasement toute mon application. S'il vous plaît pouvez-vous me dire une solution de contournement pour cela comme j'ai également essayé de réduire cet élément et de le développer à nouveau, mais il ne recharge pas cet élément et ses enfants.NSOutlineView - reloadItem: reloadChildren: plantage de mon application

En ce moment, ce que je fais est:

  1. Je sauve manuellement l'état de mon point de vue de contour en utilisant une boucle et d'enregistrer l'élément si son état dans expansé ou non.

  2. Appel fonction reloadData de NSOutlineView

  3. Ensuite, en utilisant l'état enregistré, exécutez une boucle pour développer tous les éléments qui ont déjà été étendus.

Mais cette méthode a beaucoup de frais généraux. Y a-t-il une autre solution à cette méthode?

Existe-t-il une méthode pour enregistrer automatiquement l'état de la vue de plan et le recharger et rétablir cet état? Que font ces méthodes autosaveExpandedItems et setautosaveExpandedItems?

Merci

+1

Veuillez modifier votre question pour inclure le journal de plantage. –

Répondre

0

Ceci est un comportement commun à 10.6 si vous essayez de recharger un nœud alors qu'un processus de rechargement est en cours.

Cette méthode (ou certaines méthodes plus approfondies) a été améliorée pour 10.6. En fait, il y a un NSAssert mais ressemble à comme un plantage lorsque vous chargez le noeud dans awakeFromNib au démarrage en raison de la fuite d'un gestionnaire d'exception approprié qui gère 'l'exception d'inconsistance'.

0

problème de synchronisation, essayez d'utiliser NSLock ou @synchronize autour de reloadItem. peut joindre une source à ce problème s'il vous plaît?

Questions connexes