シェイクして元に戻す機能をサポートする CoreData ベースのアプリケーションがあります。これは現在正常に動作していますが、デバイスを振ると、NSUndoManager が通常無料で提供する通常の元に戻すプロンプトを最初に表示せずに、すぐに元に戻すことができます。
「元に戻すアーキテクチャ」ドキュメントから「iPhone での元に戻す」を読みました。
- 実装
canBecomeFirstResponder、復帰YES - ビューコントローラー
becomeFirstResponderを作るviewDidAppear - ビューコントローラー
resignFirstResponderを作るviewDidDisappear self.undoManagerビューコントローラーで読み取り/書き込みとして再宣言するNSUndoManagerメソッドでand 設定self.undoManagerを作成しますUIViewControllerinit(これが呼び出されることを確認しました)。- のセッターで に設定し
self.managedObjectModel.managedObjectContext.undoManagerます。繰り返しますが、これが呼び出されていることを確認しました。これをしないと、元に戻す操作がまったく機能しません。self.undoManagermanagedObjectModel
私がすでに試したトラブルシューティング:
- 元に戻すチェックは実際に機能します(管理対象オブジェクトモデルへの変更が元に戻されていることがわかります)
- 検証
canBecomeFirstResponderが呼び出されています - 元に戻す操作中にアクセサ
self.undoManagerが呼び出されているかどうかを確認します(そうではありません)。
だから私の質問は:
- 元に戻すは機能するが、元に戻すプロンプトが表示されないのはどのような状況ですか?
- これをトラブルシューティングするために、次に何を試しますか?