0

私のドキュメントベースのアプリケーションでは、やり直しと元に戻す動作をNSUndoManager.

NSToolbarItemscanRedoおよびに基づいて、元に戻す/やり直しを自動的に有効または無効にしたいcanUndo(デフォルト メニューのように) (私NSToolbarItemsはイメージ ベースで- (BOOL)validateToolbarItem:(NSToolbarItem *)theItemはないため、呼び出されません)

1)有効値をにバインドしようとしましたself(My WC).document.undoManager.canUndo / self(My WC).document.undoManager.canRedo

canUndo と canRedo は変数ベースではなく、単なるメソッドであるため、機能しません

2) WC の canUndo と canRedo に 2 つのプロパティを追加しました。これらは手元で変更しname:NSUndoManagerDidUndoChangeNotificationますname:NSUndoManagerDidRedoChangeNotificationが、アクションを NSUndoManager に追加しただけでは呼び出されないため、最初のやり直しまたは元に戻すアクションを実行する必要があります。望ましい動作を得る

4

1 に答える 1

1

キーも登録していました

NSUndoManagerCheckpointNotification「元に戻すマネージャーが新しい元に戻すグループを開いたり閉じたりします」

これは、アクションが元に戻すマネージャーに追加されたときに呼び出されるためです。

于 2013-11-06T21:13:32.437 に答える