Я хотел бы запросить дополнительную информацию от пользователя во время NSOpenPanel, но мне нужно проверить эту информацию до завершения открытия панели. Например, я могу разрешить пользователю добавлять примечание о файле при выборе открытой панели, но мне нужно подтвердить, что этот комментарий не пустой.
У меня есть дополнительное представление, элементы управления которого привязаны к NSObjectController
, чей объект содержимого в свою очередь связан с представленным объектом NSViewController, который я использую для загрузки пера дополнительного представления. Представленный объект имеет NSKeyValueCoding
-совместимые методы проверки (например, -(BOOL)validateKey:error:
). Проверка корректно обрабатывается (и о нарушениях сообщается через модальное диалоговое окно), когда пользователь изменяет значения элементов управления.
Моя проблема в том, что я не могу понять, как получить подтверждение, если пользователь не вводит что-либо в дополнительном представлении. Например, скажем, у меня есть одно текстовое поле в дополнительном представлении, связанный объект которого проверяет, что текст ненулевой длины. Если пользователь вводит текст (проверка прошла успешно), то удаляет текст, проверка не проходит, и пользователю выдается ошибка. Однако, если пользователь не вводит текст, открытая панель закрывается без ошибок. Как я могу проверить, что текст ненулевой до открытой панели отклоняется?