NSUndoManager и включение/отключение кнопки отмены

В интерфейсе моего приложения для iOS я имею явную отмену и восстанавливаю кнопку (встряска к отмене является симпатичным тяжелым действием и в этом контексте, неDOS выполняются довольно часто). Обычно, я использовал бы KVO, чтобы наблюдать canUndo NSUndoManager и canRedo ключевые пути и включить и отключить кнопки, поскольку уведомления входят. К сожалению, NSUndoManager, кажется, не KVO-совместим для тех ключевых путей - или по крайней мере, я ничего не вижу с точки зрения уведомлений.

Таким образом, мой вопрос: Как я получаю эту работу? Я просто делаю его неправильно с KVO? (Я имею дважды и трижды проверенный, но всегда существует та возможность). Там другой путь состоит в том, чтобы сделать это, что я не думаю? (Я имею, хотя о просто проверке значения-canUndo каждый раз вращения runloop, но это имеет своего рода плохой запах кода мне).

(Обратите внимание, что довольно возможно, что NSUndoManager отличается на iOS и Mac OS X, таким образом, я не думаю, что "Это работает над Mac", будет полезным ответом, в этом случае),

7
задан Colin Barrett 13 August 2010 в 21:13
поделиться

1 ответ

Зарегистрируйтесь для NSUndoManagerDidUndoChangeNotification вашего NSUndoManager и друзей, чтобы проверять, когда новые группы отмены создаются и выталкиваются из стека, и соответствующим образом обновлять состояния ваших кнопок.

13
ответ дан 6 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: