Решение для iPhone новой файловой диалоговой клавиатуры - PullRequest
0 голосов
/ 17 ноября 2009

Я хочу, чтобы пользователь вводил имя нового файла, поэтому есть определенные символы, в которые я хочу запретить вход. есть ли специальная клавиатура, которую я могу использовать, или я могу отключить определенные клавиши на клавиатуре iphones.

является ответом на запуск регулярного выражения во входном тексте и указание пользователю, что имя файла недопустимо (если да, каким будет это регулярное выражение?)

ОТВЕТ: (или что я в итоге сделал)

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    BOOL valid;
    //if the user has put in a space at the beginning
    if ([string isEqualToString:@" "]){
        if (range.location == 0){
            valid = NO;
        }
        else{
            valid = YES;
        }
    }
    //otherwise test for alpha numeric
    else{
        NSCharacterSet *alphaSet = [NSCharacterSet alphanumericCharacterSet];
        valid = [[string stringByTrimmingCharactersInSet:alphaSet] isEqualToString:@""];
    }

    //print the warning label
    if (valid == NO){
        [errorLabel setText:@"Invalid input"];
    }
    else{
        [errorLabel setText:nil];
    }
    return valid;
}

Ответы [ 2 ]

1 голос
/ 17 ноября 2009

Вы можете реализовать метод делегата

Для UITextField,

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text

Для UITextview

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;

и выберите погоду для добавления введенных символов или нет.

0 голосов
/ 17 ноября 2009

Вы можете реализовать протокол UITextFieldDelegate и использовать textField: shouldChangeCharactersInRange: replaceString: для просмотра ввода текста и предотвращения нежелательных символов, возвращая NO.

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