Подтвердить что ты не робот

Как создать текстовое поле в UIAlertView

Обновленный UIAlertView теперь имеет стиль, который позволяет ввести поле ввода текста в UIAlertView i.e.

alert.alertViewStyle = UIAlertViewStylePlainTextInput;

Это хорошо работает, но я хотел бы ввести текст ввода с текстом defualt, например "sample".

Я вижу, что люди в прошлом использовали недокументированные api вроде (которые отлично работают)

[alert addTextFieldWithValue:@"sample text" label:@"Text Field"];

но поскольку это еще не официальный API Apple, я не могу его использовать.

Любой другой способ справиться с этим? Я попытался инициализировать в willPresentAlertView, но текстовое поле кажется доступным только для чтения.

Спасибо

4b9b3361

Ответ 1

UIALertView имеет метод textFieldAtIndex:, который возвращает нужный объект UITextField.

При a UIAlertViewStylePlainTextInput индекс текстового поля равен 0.

Затем вы можете установить свойство placeholder (или text) текстового поля:

UIAlertView *alert = ....
UITextField *textField = [alert textFieldAtIndex:0];
textField.placeholder = @"your text";

Ссылка на класс UIAlertView

Ответ 2

Простой способ сделать

 UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"your title" message:@"your message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
    alerView.alertViewStyle = UIAlertViewStylePlainTextInput;
    [[alerView textFieldAtIndex:0] setPlaceholder:@"placeholder text..."];
    [alerView show];

Ответ 3

Не проверено, но я предполагаю, что это сработает:

UIAlertView* alert = [[UIAlertView alloc] initWithTitle:...];
UITextField* textField = [alert textFieldAtIndex:0];
textField.text = @"sample";
[alert show];

Ответ 4

Для установки значения по умолчанию в uiAlertView эта вещь будет работать.

UIAlertView *alert = ....
UITextField *textField = [alert textFieldAtIndex:0];
[textField setText:@"My default text"];
[alert show];

Ответ 5

- (IBAction)showMessage:(id)sender {
    UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Add New Category"
                                                      message:nil
                                                     delegate:self 
                                            cancelButtonTitle:@"Add"
                                            otherButtonTitles:@"Cancel", nil];
    [message setAlertViewStyle:UIAlertViewStylePlainTextInput];
    [message show];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
    if([title isEqualToString:@"Add"])
    {
        UITextField *username = [alertView textFieldAtIndex:0];
        NSLog(@"Category Name: %@", username.text);
    }
}