Определение имен действия

Можно использовать 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:.