Я бы хотел перехватить или отключить Cmd-Z / Shift-Cmd-Z во время сеанса редактирования текста для ячейки табличного представления.
Это табличное представление на основе ячеек с серией столбцов, значения которых влияют друг на друга, так что заполнение некоторых столбцов заполнит другие автоматически. Когда пользователь нажимает Cmd-Z в середине сеанса редактирования, менеджер по отмене может изменить свойство, редактируемое в настоящее время, с ошибочными результатами для пользователя.
Вот пример:
Шаг 1: Пользователь вводит «.030» во втором столбце:
Шаг 2. Пользователь нажимает на вкладку, модель автоматически обновляет столбцы три, четыре и пять:
Шаг 3: Пользователь нажимает Ctrl-Z, модель отменяет изменения в столбцах два, три, четыре и пять, но сеанс редактирования все еще продолжается, поэтому в третьем столбце отображается старое значение:
Шаг 4: ничего не печатая, пользователь нажимает на вкладку, которая отменяет редактирование, и значение из третьего столбца исчезает:
Здесь на самом деле ничего "неправильного" не происходит, но это сбивает с толку.
Когда одна из ячеек редактируется, я просто хочу перехватить Cmd-Z и Shift-Cmd-Z и игнорировать их. Я думаю, что я должен переопределить -keyDown:
в том, кто первым отвечает во время этого редактирования. Но что это? Табличное представление вообще не получает эти ключевые события, и ячейка также не является респондентом.