NSUndoManager и runModalForWindow: - PullRequest
       1

NSUndoManager и runModalForWindow:

2 голосов
/ 13 ноября 2009

У меня есть простое приложение Core Data, которое отображает список сущностей в главном окне. Для создания или добавления новых объектов я использую второе модальное окно с отдельным контекстом управляемого объекта, чтобы изменения можно было отменить / повторить, не влияя на основной контекст управляемого объекта.

Окно редактирования запускается с помощью runModalForWindow:. Если я сделаю ряд дискретных изменений в этом модальном окне, выполнение одной отмены приведет к отмене ВСЕХ моих изменений. Я попытался установить режим цикла выполнения NSUndoManager (полученный из контекста второго управляемого объекта), чтобы он содержал NSModalPanelRunLoopMode, но, похоже, это не имело никакого значения.

Если я не запускаю окно с помощью runModalForWindow: и просто использую makeKeyAndOrderFront:, все работает как положено.

Кто-нибудь сталкивался с этим раньше?

Кевин

1 Ответ

0 голосов
/ 13 ноября 2009

Вы случайно используете комплект приложений Cocoa для своего приложения? Не уверен, почему он не будет делать это в вашем главном окне, и только на оверлее ... но это может быть в правильном направлении ..

Следующая цитата взята из Mac Dev Center, Ссылка на класс NSUndoManager :

При выполнении отмены NSUndoManager сохраняет операции отменены так, чтобы Вы можете повторить отмены. Если используется в Набор для нанесения какао приложение, NSUndoManager группирует все операции в течение одного цикла цикл выполнения, так что выполнение отмена отменяет все произошедшие изменения во время цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...