2014-05-18 1 views
7

я требую входной строки в моем приложении, и я попытался этоUIAlertView входной строка

// Create a new item 
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"New item" message:@"Enter a name for the item" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"Add", nil]; 
alert.alertViewStyle = UIAlertViewStylePlainTextInput; 
[alert show]; 

А затем обработать его так:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
// The user created a new item, add it 
if (buttonIndex == 1) { 
    // Get the input text 
    NSString *newItem = [[alertView textFieldAtIndex:0] text]; 
} 
} 

, но это не выглядит как clickedButtonAtIndex почему?

С наилучшими пожеланиями, Erik

+0

почему C# tag? – vikingosegundo

+0

о, ха-ха - извините. Я так привык спрашивать, когда разрабатываю телефон для Windows, так что это просто старая привычка – Erik

+0

Ohh. Действительно ли нужно постоянно спускать вниз? Теперь я не могу задавать вопросы ... Я спрашиваю, потому что я сам не нашел решение – Erik

ответ

7

Вам нужно установить делегат.

alert.delegate = self; //Or some other object other than self 

Или когда вы инициализацию предупреждение:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"New item" 
               message:@"Enter a name for the item" 
               delegate:self 
             cancelButtonTitle:@"Cancel" 
             otherButtonTitles:@"Add", nil]; 
0

метод не вызывается, потому что вы не установлены делегата.
передать себя как делегата, чтобы он получил ссылку на него.

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"New item" message:@"Enter a name for the item" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Add", nil]; 
+0

Пришлось выбрать ответ, поэтому я выбрал тот, у кого наименьшая репутация :) - Но спасибо! – Erik