NSUndoManager クラスを使用してアプリの 1 つで元に戻す/やり直し機能を設計しようとしており、設計上の問題がいくつか見られます。私のアプリでは、メソッドは 1 つだけです
-(IBAction) addLastBall:(Ball *)ball
そのため、ユーザーが UI でボタンを選択すると、ボール オブジェクトが配列リストに追加されます。ただし、ボールを削除するためのアクション ボタンはありません。これは UI ワークフローの設計であり、変更できません。したがって、取り消しを実装するために、addLastBall メソッド内で次のコードを呼び出しました。
[undoManager registerUndoWithTarget:self selector:@selector(removeBall:) object:ball];
これを行った後、ユーザーが取り消しを実行しようとすると、ボール オブジェクトで removeBall メソッドが呼び出されます。今のところすべて問題ありません。しかし、ユーザーがやり直そうとしたときに、どのメソッドが呼び出されるのかわかりません。ユーザーが元に戻す操作を使用して削除したばかりのボール オブジェクトを追加する必要があるためです。どんな洞察も非常に役に立ちます。
本当にありがとう。