UIAlertView是消息提示框UI控件,对于消息提示框的中的按钮事件采用的是事件委托机制。要实现事件响应,需要实现对应协议、重写函数达到目的。
请看下图,具体代码在图的后面
点击点击按钮
点击确定按钮
源码:
#import <UIKit/UIKit.h>
@interface Hello_WorldViewController : UIViewController <UIAlertViewDelegate> {
UITextField *txtField;
}
@property (nonatomic, retain) IBOutlet UITextField *txtField;
-(IBAction)onClickButton:(id)sender;
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;
@end
#import "Hello_WorldViewController.h"
@implementation Hello_WorldViewController
@synthesize txtField;
-(IBAction)onClickButton:(id)sender {
txtField.text = @"Hello World.";
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"鎺т欢娴嬭瘯"
message:@"宸茬粡瀹屾垚"
delegate:self //
cancelButtonTitle:@"纭畾"
otherButtonTitles:@"鍙栨秷", nil];
[alert show];
[alert release];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString* msg = [[NSString alloc] initWithFormat:@"鎮ㄦ寜涓嬩簡%@鎸夐挳锛?,buttonIndex == 0 ? @"'纭畾'" : @"'鍙栨秷'"];
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"鎻愮ず" message:msg delegate:nil cancelButtonTitle:@"纭畾" otherButtonTitles:nil];
[alert show];
[alert release];
[msg release];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
self.txtField = nil;
}
- (void)dealloc {
[txtField dealloc];
[super dealloc];
}
@end