UIAlertViewStylePlainTextInput - Программа продолжается без ожидания ввода текста от пользователя - PullRequest
0 голосов
/ 16 февраля 2012

Я как бы застрял на UIAlertViewStylePlainTextInput. (Мой код слишком длинный, чтобы публиковать здесь, но это та часть, где существует проблема.) Все это работает, но программа не ждет, пока пользователь введет информацию, прежде чем продолжить. Кнопка «editName» не меняет отображение в приведенном ниже коде, но кнопка updateDisplay работает нормально (если вы нажали кнопку «editName» до нажатия «updateDisplay»). Как я могу заставить все остановиться, пока пользователь не введет информацию (или не отменит). Или есть какое-то другое руководство, которое приведет меня туда, куда мне нужно идти. (Я возился с помещением остальной части кода в - (void) alertView, но, похоже, это не совсем правильный способ сделать это).

Заранее спасибо.

#import "HSTestViewController.h"

@implementation HSTestViewController
@synthesize display;

NSString *newName;

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex

{    
    if (buttonIndex == 1)
    {
        newName = [[alertView textFieldAtIndex:0] text];
    }
}


- (void) getNewName;
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You made the High Score List"
                                                message:@"Please enter your name"
                                               delegate:self
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"Ok", nil];

    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    [alert show];
}

- (IBAction)editName:(id)sender 
{
    [self getNewName];    
    newName = display.text;
}

- (IBAction)updateDisplay:(id)sender 
{
    display.text = newName;
}

@end

1 Ответ

2 голосов
/ 16 февраля 2012

Добавьте UIAlertViewDelegate к классу.И реализовать метод делегата ниже.

Значение индекса кнопки OK в вашем случае будет 1.

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex) 
    {
        // call the method or the stuff which you need to perform on click of "OK" button.
    }
}

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

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