Проверить текст в TextField - PullRequest
       28

Проверить текст в TextField

0 голосов
/ 02 апреля 2011

В моей программе есть текстовое поле, которое представляет имя файла из объекта модели с использованием привязок. Я хочу, чтобы этот textField мог использоваться для ввода нового fileName, и после того, как пользователь нажал Enter, он должен отправить сообщение моему объекту модели, что значение fileName изменилось в моем textField, а затем внутри моего объекта модели метод проверки, может ли такое имя файла Быть использованным называется. И если он возвращает true, тогда он должен применить новое значение к моему объекту модели, если нет, то значение в моем textField должно отменить первоначальное значение.

Кто-нибудь знает, как это можно реализовать? Я могу подтвердить свое значение, но не могу обновить текстовое поле до исходного значения. Что касается как изменения значения объекта модели, так и обновления texField, то следует использовать один метод, совместимый с KVC. Я не знаю, как реализовать такое поведение.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 02 апреля 2011

Это не похоже на хороший UX для меня; как пользователь, я был бы расстроен, обнаружив, что, если я сделал простую опечатку в текстовом поле, это полностью стерло то, что я только что ввел. Было бы намного лучше показать сообщение, указывающее, что было не так и как пользователь может это исправить. Тем не менее ...

Я думаю, вам следует настроить делегата в текстовом поле. Пусть делегат сохранит переменную, содержащую последнюю действительную строку, которая была введена. Затем в textFieldShouldEndEditing: выполните проверку на достоверность и, если проверка не прошла, установите значение текстового поля для этой переменной и верните NO. Если он прошел, измените переменную так, чтобы она содержала новую допустимую строку, и верните YES.

...