アプリで元に戻す/やり直しができました。
undoAction:メソッドとredoAction:メソッドを使用してアクションを実装するために、undoおよびredoメニューアクションのターゲットをアプリデリゲートに設定しました。メニュー項目で有効になっているバインディングは、undo managerのcanUndoプロパティとcanRedoプロパティにバインドされており、これらは期待どおりに機能します。元にしたスタックにプッシュするときにアクション名を設定しましたが、メニューに表示されません。
メニューに、[ゴミ箱に移動を元に戻す]や[ゴミ箱に移動をやり直し]ではなく、常に[元に戻す]または[やり直し]と表示されるのはなぜですか?メニュー項目は通常、バイパスしている魔法によって更新されますか?アプリデリゲートがレスポンダーチェーンに含まれておらず、アクションが表示されないため、レスポンダーチェーンを使用していません。
UNDOマネージャーは私のアプリデリゲートで作成されます。
更新:ウィンドウのUNDOマネージャーを使用するように変更しても違いはありません。
-(void)undoableRemoveItemsFromListAtIndexes:(NSIndexSet*)itemIndexes;
{
NSArray *removedItems = [[self.listController arrangedObjects] objectsAtIndexes:itemIndexes];
[[self.undoManager prepareWithInvocationTarget:self] undoableAddItems:removedItems toListAtIndexes:itemIndexes];
[self removeItemsFromListAtIndexes:itemIndexes];
[self.undoManager setActionName:@"Move to Trash"];
}