UITextField clearButtonMode и UIPicker - PullRequest
       2

UITextField clearButtonMode и UIPicker

1 голос
/ 30 января 2012

У меня есть расширенное UITextField (добавлено свойство NSString, inputType к нему) для ввода пользовательского ввода.когда пользователь нажимает на текстовое поле, я использую средство выбора для пользователя, чтобы выбрать ввод.мне также нужно позволить пользователю очистить текстовое поле, чтобы я подумал, что можно использовать

tillageTextField.clearButtonMode = UITextFieldViewModeAlways;

для очистки текстового поля.

проблема заключается в том, что вы нажимаете X, чтобы очиститьтекстовое поле, он также запускает мой сборщик.я использую:

-(BOOL) textFieldShouldBeginEditing:(MyTextField *) textField 
{
    //other code
    else if ([textField.inputType isEqualToString:@"tillageMethod"])
    {
        self.customArray = [NSArray arrayWithObjects:@"No Till", @"Strip Till", @"Full Till", nil];
        self.tempTextField = textField;
        [self showPicker];

        return  NO;
    }
    //other code
}

, чтобы показать сборщик.

есть ли способ узнать, нажал ли пользователь кнопку очистки и не показывать сборщик?

1 Ответ

1 голос
/ 30 января 2012

Вы также можете реализовать textFieldShouldClear: и установить флаг в своем классе (например, doNotShowPickerOnNextCallback)

- (BOOL)textFieldShouldClear:(UITextField *)textField {

    if ([textField.inputType isEqualToString:@"tillageMethod"]) {

        if (![self pickerIsShowing]) {
            self.doNotShowPickerOnNextCallback = YES;
        }
    }

    return YES;
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    //other code
    else if ([textField.inputType isEqualToString:@"tillageMethod"]) {

        if (self.doNotShowPickerOnNextCallback) {

            self.doNotShowPickerOnNextCallback = NO;
            return NO;
        }

        self.customArray = [NSArray arrayWithObjects:@"No Till", @"Strip Till", @"Full Till", nil];
        self.tempTextField = textField;
        [self showPicker];

        return  NO;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...