Где добавить пользовательские элементы меню в UIMenuController?

Я создал подкласс UITextView и теперь хочу расширить класс UIMenuController по умолчанию, добавив несколько кнопок. Выполнение расширения вообще не проблема, мне просто нужно добавить немного UIMenuItem, чтобы массив menuItems общего экземпляра UIMenuController.

Теперь мой вопрос: где я могу выполнить эту манипуляцию? MenuController — это одноэлементная реализация, поэтому каждое изменение, которое я делаю, повлияет на все остальные представления, поддерживающие меню. Итак, куда мне добавить лишние пункты меню и где их потом снова убрать? Я ищу какой-то эквивалент метода viewWillAppear UIViewController.

Или я слишком много беспокоюсь, и было бы неплохо реализовать его в контроллере представления представления, содержащего мой подкласс UITextView? Однако это означает, что каждый контроллер представления, содержащий мой класс в качестве подпредставления, должен будет реализовать один и тот же код. Есть ли способ лучше?

Редактировать: Другой вариант, конечно, сохранить селекторы для моего класса уникальными и заставить все другие пользовательские представления возвращать NO для селектора в -respondsToSelector:. Пока это кажется мне лучшим решением.

Какова наилучшая практика?


person Björn Marschollek    schedule 03.11.2010    source источник


Ответы (2)


Оказывается, добавление элементов в делегат приложения работает нормально. Конечно, вам нужно убедиться, что другие представления, поддерживающие MenuController, возвращают NO для вашего конкретного селектора в -respondsToSelector:.

person Björn Marschollek    schedule 05.11.2010

Хороший вопрос. Не уверен в лучшей практике.

Вы, вероятно, захотите использовать viewDidAppear и viewWillDisappear, чтобы изменить это.

person Moshe    schedule 03.11.2010