problème NSTableView suppression Dernière ligne

voix
1

Cela a été un moment que je foiré avec mon TableViewController donc je suis un peu rouillé ... mais maintenant je voudrais le configurer de sorte que lorsqu'une section a aucune ligne à afficher (tableau est vide) alors il sera « mensonge au contrôleur et retour 1 pour numberOfRowsInSection. Ensuite, dans le cellForRowAtIndexPath il placera un UILabel sur la cellule d'une ligne qui dit quelque chose à l'effet de « cette section est vide. »

Le problème est lorsque la table est en mode d'édition et l'utilisateur supprime la dernière ligne, je reçois l'erreur suivante:

Mettre fin à l'application en raison d'exception non capturée « de NSInternalInconsistencyException », motif: « mise à jour non valide: nombre incorrect de lignes dans la section 1. Le nombre de lignes contenues dans une section existante après la mise à jour (1) doit être égal au nombre de lignes contenues en ce que section avant la mise à jour (1), plus ou moins le nombre de lignes insérées ou supprimées de cette section (0 inséré, supprimé 1).

Il semble être bouleversé après que le coup à supprimer une ligne quand il tente de redessiner la table , il trouve que la dernière ligne est toujours là. Où / comment dois - je traitais cela? Certes , je suis crapping partout dans le HIG d'Apple dans une certaine mesure , mais il est source de confusion pour mes utilisateurs d'avoir juste un en- tête sur une section vide ...

Merci!

Créé 27/08/2009 à 00:19
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Vous devez insérer réellement votre ligne « faux » à l' aide -insertRowsAtIndexPaths:withRowAnimation:. Du point de vue de UITableView, il n'y a pas de lignes « vrais » ou « faux » lignes. Il y a ce que les lignes de la source de données indique qu'il ya. Donc , vous aviez 1 ligne, puis vous avez supprimé 1 ligne, puis UITableView vous avez demandé « combien de lignes sont là » et vous avez dit 1, et UITableView dit « 1 - 1 = 1. Attendez, ce Blam. »

Si vous voulez insérer une ligne ( « vrai » ou « faux » est tout de même), vous devez dire UITableView vous l'insérer.

Créé 27/08/2009 à 00:47
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more