2010-11-03 14 views
3

J'ai créé une sous-classe de UITextView et maintenant je veux étendre le UIMenuController par défaut en ajoutant quelques boutons. Exécution de l'extension n'est pas un problème du tout, je dois juste ajouter quelques UIMenuItem de sorte que le tableau menuItems de l'instance partagée de la UIMenuController.Où ajouter des éléments de menu personnalisés à UIMenuController?

Ma question est maintenant: Où dois-je effectuer cette manipulation? Le MenuController est une implémentation singleton, donc chaque modification que je fais affecte toutes les autres vues qui supportent le menu. Alors, où vais-je ajouter les éléments de menu supplémentaires et où puis-je les supprimer plus tard? Je cherche une sorte d'équivalent à la méthode viewWillAppear de UIViewController.

Ou est-ce que je m'inquiète beaucoup trop et c'est une bonne pratique de l'implémenter dans le contrôleur de vue de la vue contenant ma sous-classe UITextView? Cependant, cela signifie que chaque contrôleur de vue contenant ma classe en tant que sous-vue devra implémenter le même code. Y a-t-il un meilleur moyen?

Modifier: Une autre option est bien sûr de garder les sélecteurs pour ma classe unique et que toutes les autres vues personnalisées renvoient NO pour le sélecteur dans -respondsToSelector:. Cela semble être la meilleure solution jusqu'à présent pour moi.

Quelle est la meilleure pratique?

Répondre

2

Il s'avère que cela fonctionne bien pour ajouter les éléments dans le délégué de l'application. Vous devez vous assurer, bien sûr, que les autres vues prenant en charge le MenuController renvoient NO pour votre sélecteur particulier au -respondsToSelector:.

0

Bonne question. Pas sûr de la meilleure pratique.

Vous souhaitez probablement utiliser viewDidAppear et viewWillDisappear pour modifier cela.