Введенная пользователем проверка данных Monotouch - PullRequest
3 голосов
/ 25 апреля 2011

используя monotouch, как я могу проверить введенные пользователем данные? Я создаю просто контактную форму для своего приложения для iPhone.

В asp.net я мог бы использовать сводку проверки для отображения сообщений проверки и обязательных полей или проверить ввод адреса электронной почты по отношению к регулярному выражению.

Однако для iPhone я решил, что когда пользователь введет некоторые данные в UITextField, я смогу проверить этого пользователя на сенсорном событии, а затем отобразить сообщение проверки в диалоговом окне оповещения?

Как мне сделать так, чтобы моя форма окна проверялась?

Ответы [ 2 ]

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

Я думаю, вот как ты это делаешь:

Подкласс UITextFieldDelegate. Переопределить ShouldEndEditing(). Подтвердите введенные пользователем данные в ShouldEndEditing(). Если данные недействительны, создайте и покажите UIAlertView, объясняющий, почему данные недействительны, и верните false из ShouldEndEditing() (или используйте другие средства, чтобы сигнализировать о наличии проблемы). Если данные верны, верните true. Присвойте объект подкласса UITextFieldDelegate свойству Delegate объекта UITextField.

Перефразируя документацию Apple:

Этот метод [ShouldEndEditing()] вызывается, когда в текстовом поле запрашивается отставка статуса первого респондента. Это может произойти, когда ваше приложение просит текстовое поле оставить фокус или когда пользователь пытается изменить фокус редактирования на другой элемент управления. Однако, прежде чем фокус действительно изменится, текстовое поле вызывает этот метод, чтобы дать вашему делегату возможность решить, следует ли ему это делать.

Обычно вы возвращали бы «true» из этого метода, чтобы текстовое поле могло оставить статус первого респондента. Однако вы можете вернуть «false» в тех случаях, когда ваш делегат обнаруживает недопустимое содержимое в текстовом поле. Возвращая «false», вы можете запретить пользователю переключаться на другой элемент управления до тех пор, пока текстовое поле не будет содержать действительное значение.

0 голосов
/ 06 марта 2012

Попробуйте это:

    /// <summary>
/// Validates a text field, ensuring two letters
    /// </summary>
    public class CustomUITextFieldDelegate : UITextFieldDelegate
    {
        public override bool ShouldEndEditing (UITextField       textField)
        {
            if (textField.Text.Length != 2) {
                UIAlertView alert = new UIAlertView ("Invalid State", "Please enter a two letter state.", null, "OK", null);
                alert.Show ();
                return false;
            }

            return true;
        }
    }


    tvState.Delegate = new CustomUITextFieldDelegate();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...