2014-03-31 2 views
1

В моем приложении Cocoa для Objective-C у меня есть модель с именем Group с несколькими свойствами (например, имя, описание, дата создания и т. Д.), Которая имеет методы проверки соответствия с KVO для каждого из его свойств.Какао: измените способ подтверждения ошибок моделировки какао для пользователя

Существует NSTableView, связанный с NSArrayController и показывающий список групп, которые пользователь может изменить.

Теперь, если я проверить «Подтверждает сразу» флажок в пределах значения столбца «Название группы» в связывании, проверка работы, как ожидается, и если пользователь вводит недопустимое имя группы, окно предупреждения отображается.

Что я хочу сделать, это отключить окно предупреждения и просто пометить соответствующую строку таблицы красным цветом.

Возможно ли как-то изменить способ, которым Cocoa уведомляет пользователей об ошибках проверки?

+0

Я забыл сказать, что NSTableView отображается в документе-модальном листе, поэтому ошибки проверки сообщаются в приложениях-модальных оповещениях, а не в листах (независимо от того, установлен флажок «Всегда представляет приложения модальные предупреждения» или нет), и именно поэтому я хочу изменить его, поскольку это блокирует все приложение, а не только текущее активное окно документа. – Uniqus

ответ

1

По Key-Value Coding Programming Guide:

Инфраструктура проверки предоставляет класс возможность принять значение, обеспечить альтернативное значение, или отклонить новое значение для свойства и дать причину ошибки.

Всё. Другое поведение не поддерживается из коробки.

Оно не должно быть слишком сложно реализовать пользовательское поведение, однако:

Вы могли, например, предоставить альтернативное значение в случае сбоя проверки и установить некоторый пользовательский флаг где-нибудь в вашей модели, что, в свою очередь, позволит вашему представлению таблицы соответственно указывать неудачную проверку. В следующий раз, когда значение будет проверено и пройдет проверку, вы можете сбросить флаг.

Смежные вопросы