テーブル ビュー セルのテキスト編集セッション中に、Cmd-Z/Shift-Cmd-Z をインターセプトまたは無効にしたいと考えています。
これは、値が相互に影響する一連の列を含むセルベースのテーブル ビューであり、一部の列に入力すると他の列に自動的に入力されます。ユーザーが編集セッションの途中で Cmd-Z を押すと、元に戻すマネージャーが現在編集中のプロパティを変更する可能性があり、ユーザーを混乱させる結果になります。
次に例を示します。
ステップ 1: ユーザーは 2 列目に「.030」と入力します。
ステップ 2: ユーザーがタブを押すと、モデルは列 3、4、および 5 を自動的に更新します。
ステップ 3: ユーザーが Ctrl-Z を押すと、モデルは列 2、3、4、および 5 への変更を元に戻しますが、編集セッションがまだ進行中であるため、古い値が列 3 に表示されます。
ステップ 4: ユーザーが何も入力せずにタブを押して編集をキャンセルすると、3 列目の値が消えます。
ここで実際に「間違った」ことは何も起きていませんが、混乱を招きます。
セルの 1 つが編集されているときに、Cmd-Z と Shift-Cmd-Z をインターセプトして無視したいだけです。-keyDown:
その編集中にファーストレスポンダーであるものは何でもオーバーライドする必要があると思います。しかし、それは何ですか?テーブル ビューはこれらの重要なイベントをまったく取得せず、セルもレスポンダーではありません。