Определение имен действия
Можно использовать NSUndoManager
метод setActionName:
квалифицировать заголовки команды Undo и Redo в меню Edit. Вы передаете строку, которую Вы хотите добавленный «Отменить» и «Восстановить» в пунктах меню, когда текущая группа отмены наверху стеков отмены и стеков повторного выполнения. Поскольку имя применяется к текущей работе, необходимо обычно определять имя в то же время, что и регистрация работы, чтобы гарантировать, что эти два сохранены в синхронизации.
- (void)setBookTitle:(NSString *)newTitle { |
[undoManager registerUndoWithTarget:self |
selector:@selector(setBookTitle:) |
object:[book title]]; |
[book setTitle:newTitle]; |
[undoManager setActionName:@"Title Change"]; |
} |
Рассмотрите, например, графическое приложение, позволяющее пользователям добавлять круг, заполняет его цветом и удаляет его. С setActionName:
, Вы могли определить имя каждого действия к тому, “Добавьте Круг”, «Заливка», и «Удаляет». После каждого действия заголовок пункта меню Undo установлен “Отменить, Добавляет Круг”, “Заливка Отмены”, и “Отмена Удаляют” соответственно.
NSUndoManager
автоматически локализует часть «Отмены» и «Восстановления» заголовков команды, но просто добавляет имя действия к ним. Необходимо локализовать имена действия сами. Если Вы хотите далее настроить, как эти заголовки локализуются, можно создать подкласс NSUndoManager
и переопределение undoMenuTitleForUndoActionName:
и redoMenuTitleForUndoActionName:
.