2010-06-15 5 views
1

J'ai une vue de table qui est rafraichie de deux manières différentes. Les deux sont à travers un bouton, et en fait, les deux sont à travers le même IBAction dans la même classe!NSTableView non rafraîchissant

Voici mon problème:

Les boutons sont dans deux fichiers .xib différents, le bouton dans la même xib que la vue de table fonctionne parfaitement, alors que celui dans les différents xib fait la méthode pour obtenir les nouvelles données , mais il ne rafraîchit pas la table. Même méthode exacte, résultats différents. Pour obtenir l'IBAction pour l'autre bouton, j'ai simplement déplacé un objet NSObject dans IB et ai défini sa classe à la classe de ma vue de table, qui contient l'IBAction, puis l'ai accroché à mon bouton.

Comment puis-je résoudre ce problème?

Répondre

1

Cela ressemble à la création d'un second objet parallèle de votre classe dans la deuxième XIB. Le bouton envoie un message à cette instance, qui fait certaines choses que vous attendez parce que c'est un objet de la bonne classe, mais ce n'est pas réellement le bon objet et n'est pas connecté à votre vue.

Ce que vous devez faire est de vous assurer que les deux boutons parlent à la même instance. C'est plus facile si la cible est dans la chaîne de répondeur - vous devriez être en mesure de définir la cible du bouton à First Responder et le message trouvera son chemin au bon endroit. Sinon, vous devez placer un pointeur sur la cible dans le XIB, par exemple comme un IBOutlet dans l'objet qui sera Propriétaire du fichier.

+0

Il est également possible que l'objet qui reçoit ce message d'action soit le propriétaire de la seconde plume, sinon des deux. –