两大功能:第一:编辑文字,第二:输入框可以随时输入文字
创建UITextField
//一、创建对象
UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(20, 100, 335, 40)];
//二、设置属性
textField.backgroundColor = [UIColor whiteColor];
//三、添加到父视图上
[self.window addSubview:textField];
//四、释放所有权
[textField release];
//UITextField属性:
//2、 当输入框没有内容时,设置提示语
textField.placeholder = @"请输入小东的三维";
//3.设置输入框已经显示的内容,(默认显示的内容)
textField.text = @"40尺 50尺 60尺";
//4、设置输入框输入字体的颜色(默认黑色)
textField.textColor = [UIColor redColor];
//5、设置输入框字体的大小
textField.font = [UIFont systemFontOfSize:20];
//6、设置对齐方式
textField.textAlignment = NSTextAlignmentCenter;
//7、当开始编辑时 当前输入框内容全部清除
//textField.clearsOnBeginEditing = YES;
//8、设置输入框的样式
textField.borderStyle = UITextBorderStyleRoundedRect;
//9、设置输入框内容时首字母大写
textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
//10、设置键盘的样式
//textField.keyboardType = UIKeyboardTypeNumberPad;
//11、设置键盘的外观
//textField.keyboardAppearance = UIKeyboardAppearanceDark;
//12、设置输入框输入内容时,是否使用安全模式
//textField.secureTextEntry = YES;
//13、设置return返回按钮的模式
textField.returnKeyType = UIReturnKeyRoute;
//14、设置输入框是否可以编辑 默认是YES
textField.enabled = YES;
//15、如何自定义键盘
// UIView *customView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 350, 300)];//设置自定义键盘时,只需要给定键盘的高度,宽度系统会根据当前屏幕的宽度自动获取;
// customView.backgroundColor = [UIColor redColor];
//使用自定义键盘属性
// textField.inputView = customView;
// [customView release];
//16、如何创建一个有背景的键盘
// UIImageView *customView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 0, 300)];
// //设置图片
// customView.image = [UIImage imageNamed:@"1.jpg"];
// //使用自定义键盘属性
// textField.inputView = customView;
// [customView release];
//17、设置键盘上面的辅助视图工具栏
// UIView *accessoryView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 0, 30)];
// accessoryView.backgroundColor = [UIColor greenColor];
//
// //添加键盘上方的自定义辅助视图
// textField.inputAccessoryView = accessoryView;
// [accessoryView release];
//18、设置点击清除内容的按钮 清除的是已经编辑的内容
textField.clearButtonMode =
UITextFieldViewModeAlways;
//19.设置代理
//如何使用代理 如何设置代理对象
//代理完成协议里的任务,如果想作为输入框(UITextield 的代理对象),实现协议里的方法 那么首先必须称为输入框的代理对象,然后实现协议里的方法:;
/*
1.服从协议
2.设置代理对象
3.实现协议里的方法
*/
//设置代理对象 将当前类的对象设置为textField输入框的代理对象
textField.delegate = self;
//实现协议里的方法:
#pragma mark - UITextFieldDelegate -
//***第一个被调用的方法:当点击输入框时,询问输入框是否允许编辑,如果返回YES,说明允许编辑,如果返回为NO,说明不允许编辑;
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
//当点击输入框时,我们想做的所有操作,都可以写在此方法内;
//textField.backgroundColor = [UIColor redColor];
NSLog(@"当点击输入框时,询问输入框是否允许编辑,如果返回YES,说明允许编辑,如果返回为NO,说明不允许编辑:%s,行数%d",__FUNCTION__,__LINE__);
return YES;
}
//***第二个被调用的方法:告诉代理对象,现在输入框已经开始编辑了
- (void)textFieldDidBeginEditing:(UITextField *)textField{
NSLog(@"告诉代理对象,现在输入框已经开始编辑了:%s,行数%d",__FUNCTION__,__LINE__);
}
//倒数第二个调用的方法,当输入框结束编辑的时候触发(调用)
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
NSLog(@"第二个被调用的方法 当输入框结束编辑的时候触发(调用):%s,行数%d",__FUNCTION__,__LINE__);
return YES;
}
//倒数第一个调用的方法.当输入框已经结束编辑时触发
- (void)textFieldDidEndEditing:(UITextField *)textField{
NSLog(@"倒数第一个调用的方法.当输入框已经结束编辑时触发:%s,行数%d",__FUNCTION__,__LINE__);
}
//当输入框中的内容发生改变时,则会立即调用该方法,而且该方法会被多次调用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@"当输入框中的内容发生改变时,则会立即调用该方法,而且该方法会被多次调用:%s,行数%d",__FUNCTION__,__LINE__);
return YES;
}
//当点击清除按钮时,调用该方法,或者做清除输入框里的内容时,会调用该方法
- (BOOL)textFieldShouldClear:(UITextField *)textField{
NSLog(@"当点击清除按钮时,调用该方法,或者做清除输入框里的内容时,会调用该方法:%s,行数%d",__FUNCTION__,__LINE__);
return YES;
}
//[textField becomeFirstResponder];推出键盘 称为第一响应者
//当点击键盘上return返回按钮时,触发该方法 可以在点击return按钮时,同时回收键盘;
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSLog(@"当点击键盘上return返回按钮时,触发该方法 可以在点击return按钮时,同时回收键盘:%s,行数%d",__FUNCTION__,__LINE__);
//回收键盘 释放第一响应者
[textField resignFirstResponder];