J'ai une vue de texte qui obtient son contenu d'une chaîne attribuée stockée dans un objet de modèle. Je liste plusieurs de ces objets de modèle dans un tiroir et lorsque l'utilisateur clique sur un de ces objets, la vue de texte change son contenu.Plusieurs gestionnaires d'annulation pour une vue de texte
Je dois maintenant également permuter le gestionnaire d'annulation pour la vue de texte. J'initialise un gestionnaire d'annulation sur mon objet modèle et j'utilise undoManagerForTextView pour le renvoyer en mode texte, mais quelque chose ne va pas. Les instructions de journalisation placées stratégiquement me montrent que tout fonctionne comme prévu: au démarrage, un nouvel objet modèle est initialisé correctement et un gestionnaire d'annulation non nul est toujours tiré par la vue texte. Mais quand il s'agit de faire réellement défaire, je ne peux pas obtenir le comportement que je veux.
J'ouvre une fenêtre, tapez quelque chose et appuyez sur cmd + z, et annuler fonctionne. J'ouvre une fenêtre, tapez quelque chose, sélectionnez un nouveau modèle sur la table, tapez quelque chose, revenez au premier modèle et essayez de défaire et tout ce que je reçois est un bip.
Something sur la documentation m'a fait lever un sourcil, car cela signifierait que je ne peux pas avoir undo avec plusieurs objets de modèle:
Le undo par défaut et refaire le comportement applique aux champs de texte et texte cellules tant que le champ ou la cellule est le premier répondeur (c'est-à-dire le focus des actions du clavier). Une fois que le point d'insertion quitte le champ ou la cellule , les opérations antérieures ne peuvent pas être annulées.
Je pense que je vais aller avec Core Data. Si je transforme mon objet de modèle en entité gérée, je vais l'annuler gratuitement. – ruipacheco
Votre méthode semble fonctionner très bien, pas besoin d'ajouter des données de base à l'application. Merci! – ruipacheco