UIAlertView clickedButtonAtIndex не вызывается - PullRequest
2 голосов
/ 10 мая 2011

Вот как я создаю предупреждение:

UIAlertView* dialog = [[UIAlertView alloc] init];

dialog.delegate = self;

//some options

aField = [[UITextField alloc]initWithFrame:CGRectMake(20.0,45.0,245.0,25.0)];
[aField setBackgroundColor:[UIColor whiteColor]];
[dialog addSubview:appkeyField];

[dialog show];
[aField release];

Однако

- (void)alertView:(UIAlertView *)alertView 
                  clickedButtonAtIndex:(NSInteger)buttonIndex{
    NSLog(@"test here");
}

ничего не делает.В журнале ничего нет!Что может быть не так?

1 Ответ

3 голосов
/ 10 мая 2011

Когда вы устанавливаете свойство delegate объекта, ваш класс должен принять соответствующий протокол. В вашем случае вы используете UIAlertView, поэтому вам нужно добавить протокол UIAlertViewDelegate в заголовочный файл:

@interface MyClass : UIViewController <UIAlertViewDelegate>

Чтобы добавить несколько протоколов, используйте:

@interface MyClass : UIViewController <Protocol1, Protocol2, ...>
...