Цель C - Заставить UIAlertView ждать ввода пользователя? - PullRequest
0 голосов
/ 03 сентября 2010

У меня UIAlertView настроен с текстовым полем, например:

//***first set of code***  
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"User Input Required" message:@"Please enter data into the field" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];  
    [alert addTextFieldWithValue:nil label:@"[Enter Text]"];  
    [[alert textField] becomeFirstResponder];  
    [alert show];  
    [alert release];  
//***second set of code***`

Как я могу сделать так, чтобы пользователь должен был нажать кнопку (у меня уже настроен этот метод для отправки ввода в строку) ПРЕЖДЕ ЧЕМ любой из «второго набора кода» отключается?

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

Ответы [ 2 ]

7 голосов
/ 13 октября 2010

Разве вы не любите это, когда люди говорят: «Не делай так», а затем никогда не дают тебе ничего хорошего / правильного, как ДОЛЖНО это делать.

Спасибо.

1 голос
/ 03 сентября 2010

Вы не можете этого сделать. show сообщение в UIAlertView не остановится для пользовательского ввода. Связанные делегаты должны будут обработать код, который вы планируете поместить в раздел //***second set of code***.

Сказав это, позвольте мне дать вам несколько советов. addTextFieldWithValue сообщение - недокументированная функция API. Не используйте его. Когда-то процесс одобрения Apple для вашего приложения давным-давно позволил вам пройти, даже если ваше приложение использовало это сообщение addTextFieldWithValue. Но сегодня этого больше не происходит. Ваша заявка будет автоматически отклонена, если она использует эту недокументированную функцию. Здесь - это запись в блоге по теме.

Надеюсь, это поможет.

...