Text Fields是一个UI元素,使应用程序可以获取用户输入。
UITextfield如下所示。
Text Fields - 属性
- Placeholder
- Normal text
- Auto correction type
- Key board type
- Return key type
- Clear button mode
- Alignment
- Delegate
Text Fields - 更新属性
您可以在实用程序区域(窗口的右侧)的属性检查器中的xib中更改文本字段属性。
Text Fields - 委托
无涯教程可以通过右键单击UIElement并在接口构建器中设置委托,如下所示,将其连接到文件所有者。
Text Fields - 代理步骤
步骤1 - 设置代理,如上图所示。
步骤2 - 添加类响应的委托。
步骤3 - 实现textField委托,重要的文本字段委托如下-
- (void)textFieldDidBeginEditing:(UITextField *)textField - (void)textFieldDidEndEditing:(UITextField *)textField
步骤4 - 顾名思义,一旦无涯教程分别开始编辑文本字段和结束编辑,就会调用上述两个委托。
步骤5 - 对于其他代表,请参考UITextDelegate协议参考。
Text Fields - 示例代码
步骤1 - 无涯教程将使用为UI元素创建的示例应用程序。
步骤2 - 无涯教程的ViewController类将采用 UITextFieldDelegate 并且无涯教程的 ViewController.h 文件更新如下-
#import <UIKit/UIKit.h> //您可以注意到下面添加了 UITextFieldDelegate @interface ViewController : UIViewController<UITextFieldDelegate> @end
步骤3 - 然后,无涯教程在ViewController.m文件中添加方法 addTextField 。
步骤4 - 然后,无涯教程在viewDidLoad方法中调用此方法。
步骤5 - 如下更新 ViewController.m 中的 viewDidLoad -
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //创建我们的文本字段的自定义方法称为 [self addTextField]; //Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; //处置任何可以重新创建的资源。 } -(void)addTextField { //这分配了一个标签 UILabel *prefixLabel = [[UILabel alloc]initWithFrame:CGRectZero]; //这将设置标签文本 prefixLabel.text =@"## "; //这会设置标签的字体 [prefixLabel setFont:[UIFont boldSystemFontOfSize:14]]; //这使框架适合文本的大小 [prefixLabel sizeToFit]; //这将分配文本字段并设置其框架 UITextField *textField = [[UITextField alloc] initWithFrame: CGRectMake(20, 50, 280, 30)]; //这将设置文本字段的边框样式 textField.borderStyle = UITextBorderStyleRoundedRect; textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; [textField setFont:[UIFont boldSystemFontOfSize:12]]; //未键入文本时显示占位符文本 textField.placeholder = @"Simple Text field"; //前缀标签设置为左视图,然后文本开始 textField.leftView = prefixLabel; //设置左边prefixLabel什么时候显示 textField.leftViewMode = UITextFieldViewModeAlways; //将 textField 添加到视图中。 [self.view addSubview:textField]; //将委托设置为当前类 textField.delegate = self; } //标记用于在 Xcode 中轻松访问代码 #pragma mark - TextField Delegates //一旦我们在 textField 内单击,就会调用此方法 -(void)textFieldDidBeginEditing:(UITextField *)textField { NSLog(@"Text field did begin editing"); } //一旦我们完成编辑,就会调用这个方法 -(void)textFieldDidEndEditing:(UITextField *)textField { NSLog(@"Text field ended editing"); } //此方法启用或禁用返回键的处理 -(BOOL) textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } - (void)viewDidUnload { label = nil; [super viewDidUnload]; } @end
步骤6 - 运行应用程序时,将得到以下输出。