下面的例子将展示如何通过UITextField的内容来改变UILabel中的内容
实现UITextField Delegate协议
首先我们需要在viewController的接口中声明实现UITextFieldDelegate代理协议
代码语言:javascript复制@interface TextField : UIViewController {
}
@end
</pre>
### 添加UILabel 和 UITextField对象
#import "TextField.h"
@implementation TextField
UILabel *label;
UITextField *textField;
- (void)viewDidLoad {
[super viewDidLoad];
//Create label
label = [[UILabel alloc] init];
label.frame = CGRectMake(10, 10, 300, 40);
label.textAlignment = UITextAlignmentCenter;
label.text = @"";
[self.view addSubview:label];
// Initialization code
textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 200, 300, 50)];
textField.delegate = self;
textField.placeholder = @"";
textField.textAlignment = UITextAlignmentCenter;
[self.view addSubview: textField];
}
- (void)dealloc {
[textField release];
[label release];
[super dealloc];
}
@end
</pre>
这段程序没有什么好说的,就是建立并初始化一个UILabel和UITextField对象
### 实现代理方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
label.text = textField.text;
[textField resignFirstResponder];
return YES;
}
当用户按了键盘上的Return键后,此方法被调用。 它做了两件事,一件是把UILabel中的值设置成UITextField中的值,另外一个是关闭虚拟键盘。
iPhone编程中大量使用了代理和回调方法,是一种基本的设计模式,所以大家要熟悉这种编程模式。
- Previous Mac向后删除文本
- Next Git与Xcode配合使用