2010-02-19 10 views
1

J'ai une méthode refreshDisplay: qui appelle la méthode setString: d'un NSTextView. Je peux enregistrer et charger, mais quand je charge même si mon programme charge les données, il ne l'affiche pas sur NSTextView comme il se doit. J'ai fait une vérification et que NSTextView semble être nul quand je charge, c'est pourquoi la méthode setString: ne fait rien. Je pensais que ce textView serait initialisé par le constructeur d'interface. Aucune suggestion? Merci.NSTextView ne s'initialise pas lorsque j'appelle readFromData: (NSData *) data ofType: (NSString *) chaîne

Répondre

0

L'affichage de texte est-il marqué IBOutlet dans l'interface de votre classe et êtes-vous sûr qu'il est correctement connecté à l'objet approprié dans votre plume? Si c'est le cas, alors il ne devrait pas y avoir de raison pour que votre NSTextField ivar soit nil.

+0

Première moitié du commentaire: oui c'est un IBOutlet. Il n'est pas nul quand je crée un nouveau document (je peux appeler sa méthode setString:), mais quand je charge, rien n'est affiché, même si NSLog() montre que le programme a chargé les données en les affichant. Lorsque j'appuie sur le bouton qui crée de nouveaux "objets de données hypothétiques", les choses sont affichées, et mon NSLog() dit que textView n'est pas nul. Mais les données sont de nouvelles données, pas celles chargées. –

+0

Deuxième moitié du commentaire: Le NSTextView (champ non) est juste nul juste après un chargement. Donc je dois faire quelque chose de mal dans mon - (BOOL) readFromData: (NSData *) données deType: (NSString *) erreur typeName: (NSError **) outError - (id) initWithCoder: (NSCoder *) décodeur méthodes. Droite? –

+0

Ok c'est étrange ... la méthode init de l'objet que j'ai archivé, et que je suis en train de charger, est appelée quand je charge le fichier sauvegardé. Il ne devrait pas être appelé, parce que je veux désarchiver le gelé. Pourquoi ça fait ça? –