未调用UIAlertView clickedButtonAtIndex

时间:2011-05-10 17:54:34

标签: objective-c ios delegates uialertview

这就是我创建警报的方式:

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 个答案:

答案 0 :(得分:3)

当您设置对象的delegate属性时,您的类必须采用适当的协议。在您的情况下,您使用的是UIAlertView,因此您需要将UIAlertViewDelegate协议添加到头文件中:

@interface MyClass : UIViewController <UIAlertViewDelegate>

要添加多个协议,请使用:

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