カスタムXMLファイルを作成するだけの単純なドキュメントベースのアプリケーションがあります。アウトラインビューを使用してXMLドキュメントをナビゲートします。アウトラインビューの項目を選択すると、カスタムビューがドキュメントビューのサブビューとして表示され、ユーザーはデータを入力できます。ビューの1つにNSTextFieldがあります。「元に戻す」フラグが設定されています。編集が完了したときに、NSDocumentでundoManagerが呼び出されることを確認するためにテストしました。したがって、コントロールはファーストレスポンダーを介してバウンスしているように見えます。
IBActionでは、ActionNameを使用して、メニューに正しく表示されるようにします。ここに問題があります。ActionNameがメニューに表示されないだけでなく、[元に戻す]をクリックしても、NSTextFieldで実行されたアクションが元に戻されるのではなく、その直前に登録されたアクションが元に戻されます。NSTextFieldでundoを設定するときに見落としたことがありますか?
(IBAction)textFieldChanged:(id)sender {
...ここにいくつかのコード...
[[self undoManager] setActionName:@"テキストの変更"];
}
よろしくお願いします、ロブ