iOS,文本输入,键盘相关

1.UIKeyboard键盘相关知识点

2.点击空白区域隐藏键盘(UIKeyboard)

3.键盘(UIKeyboard)挡住输入框处理

4.自定义键盘(UIKeyboard)

5.监听键盘弹出或消失消息

6.UITextField和UITableView自定义下拉列表框

7.使用UIPickerView在UITextField实现滚动选择

8.使用UIDatePicker在UITextField实现日期选择

9.设置文本输入框样式

UIKeyboard键盘相关知识点

一、键盘风格

UIKit框架支持8种风格键盘。

typedef enum {

  UIKeyboardTypeDefault, // 默认键盘:支持所有字符

  UIKeyboardTypeASCIICapable, // 支持ASCII的默认键盘

  UIKeyboardTypeNumbersAndPunctuation, // 标准电话键盘,支持+*#等符号

  UIKeyboardTypeURL, // URL键盘,有.com按钮;只支持URL字符

  UIKeyboardTypeNumberPad, //数字键盘

  UIKeyboardTypePhonePad, // 电话键盘

  UIKeyboardTypeNamePhonePad, // 电话键盘,也支持输入人名字

  UIKeyboardTypeEmailAddress, // 用于输入电子邮件地址的键盘

} UIKeyboardType;

用法用例:textView.keyboardtype = UIKeyboardTypeNumberPad;

二、键盘外观

typedef enum {

  UIKeyboardAppearanceDefault, // 默认外观:浅灰色

  UIKeyboardAppearanceAlert, //深灰/石墨色

} UIKeyboardAppearance;

用法用例:textView.keyboardAppearance=UIKeyboardAppearanceDefault;

三、回车键

typedef enum {

  UIReturnKeyDefault, //默认:灰色按钮,标有Return

  UIReturnKeyGo, //标有Go的蓝色按钮

  UIReturnKeyGoogle, //标有Google的蓝色按钮,用于搜索

  UIReturnKeyJoin, //标有Join的蓝色按钮

  UIReturnKeyNext, //标有Next的蓝色按钮

  UIReturnKeyRoute, //标有Route的蓝色按钮

  UIReturnKeySearch, //标有Search的蓝色按钮

  UIReturnKeySend, //标有Send的蓝色按钮

  UIReturnKeyYahoo, //标有Yahoo!的蓝色按钮,用于搜索

  UIReturnKeyDone, //标有Done的蓝色按钮

  UIReturnKeyEmergencyCall, //紧急呼叫按钮

} UIReturnKeyType;

用法用例:textView.returnKeyType=UIReturnKeyGo;

四、自动大写

typedef enum {

  UITextAutocapitalizationTypeNone, //不自动大写

  UITextAutocapitalizationTypeWords, //单词首字母大写

  UITextAutocapitalizationTypeSentences, //句子首字母大写

  UITextAutocapitalizationTypeAllCharacters, //所有字母大写

} UITextAutocapitalizationType;

用法用例:textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

五、自动更正

typedef enum {

  UITextAutocorrectionTypeDefault,//默认

  UITextAutocorrectionTypeNo,//不自动更正

  UITextAutocorrectionTypeYes,//自动更正

} UITextAutocorrectionType;

用法用例:textField.autocorrectionType = UITextAutocorrectionTypeYes;

六、安全文本输入

textView.secureTextEntry=YES;

开启安全输入主要是用于密码或一些私人数据的输入,此时会禁用自动更正和自此缓存。

//点击回车键的回调

UITextFieldDelegate

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

return YES;

}

点击空白区域隐藏键盘(UIKeyboard)

//结束触摸

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

//isExclusiveTouch一个布尔值来指示接收机处理触摸事件。

//没有触摸_textUser进入if内操作

if (![_textUser isExclusiveTouch]) {

//resignFirstResponder取消第一响应者状态的。如果对textfield使用的话,那么调用这个方法,textfield的第一响应者状态就会取消,然后键盘就消失了。

[_textUser resignFirstResponder];

}

}

或者

//结束触摸

-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

[self.view endEditing:YES];//收回键盘

}

键盘(UIKeyboard)挡住输入框处理

//需要处理输入框被键盘挡住的.h文件,遵守UITextFieldDelegate协议

#import <UIKit/UIKit.h>

#import "MyKeyboard.h"

@interface Test2ViewController : UIViewController<MykeyBoardDelegate,UITextFieldDelegate>

@end

//需要处理输入框被键盘挡住的.m文件,实现UITextFieldDelegate协议方法

  //实现委托

_textUser.tag=1;

_textUser.delegate=self;

_textPwd.tag=2;

_textPwd.delegate=self;

//选中开始编辑文本框内容

-(void)textFieldDidBeginEditing:(UITextField *)textField{

_textTag=textField.tag;

//根据tag判断这个键盘是否是被遮住的键盘

if (_textTag==2) {

//将界面上移避免文本框被键盘挡住

CGRect frame = self.view.frame;

frame.origin.y -=200;

frame.size.height +=200;

self.view.frame = frame;

}

}

//结束编辑文本框内容

-(void)textFieldDidEndEditing:(UITextField *)textField{

//根据tag判断这个键盘是否是被遮住的键盘

if (_textTag==2) {

CGRect frame=self.view.frame;

frame.origin.y+=200;

frame.size.height-=200;

self.view.frame=frame;

}

}

自定义键盘(UIKeyboard)

//MyKeyboard.h文件(自定义键盘)

#import <UIKit/UIKit.h>

@protocol MykeyBoardDelegate<NSObject>

//文本框值输入委托

-(void)myKeyBoardInput:(NSString *)inputString;

//删除文本框字委托

-(void)myKeyBoardBack;

//隐藏键盘委托

-(void)myKeyBoardOK;

@end

@interface MyKeyboard : UIView

@property (nonatomic,weak) id<MykeyBoardDelegate> delegate;//声明一个委托变量

@end

//MyKeyboard.m文件(自定义键盘)

#import "MyKeyboard.h"

@implementation MyKeyboard

-(id)initWithFrame:(CGRect)frame{

self=[super initWithFrame:frame];

if (self) {

self.bounds=CGRectMake(0, 0, frame.size.width, frame.size.height);

UIButton *buttonX=[[UIButton alloc] initWithFrame:CGRectMake(frame.size.width*0.8, 0, frame.size.width*0.19, frame.size.height*0.24)];

[buttonX.layer setCornerRadius:2.0];

[buttonX.layer setBorderWidth:0.5];

[buttonX setBackgroundColor:[UIColor whiteColor]];

[buttonX setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[buttonX setTitle:@"X" forState:UIControlStateNormal];

[buttonX addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];

[self addSubview:buttonX];

//第四横排键盘

UIButton *button0=[[UIButton alloc] initWithFrame:CGRectMake(frame.size.width*0.2, frame.size.height*0.75, frame.size.width*0.19, frame.size.height*0.24)];

[button0.layer setCornerRadius:2.0];

[button0.layer setBorderWidth:0.5];

[button0 setBackgroundColor:[UIColor whiteColor]];

[button0 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[button0 setTitle:@"0" forState:UIControlStateNormal];

[button0 addTarget:self action:@selector(inputAction:) forControlEvents:UIControlEventTouchUpInside];

[self addSubview:button0];

UIButton *buttonPoint=[[UIButton alloc] initWithFrame:CGRectMake(frame.size.width*0.4, frame.size.height*0.75, frame.size.width*0.19, frame.size.height*0.24)];

[buttonPoint.layer setCornerRadius:2.0];

[buttonPoint.layer setBorderWidth:0.5];

[buttonPoint setBackgroundColor:[UIColor whiteColor]];

[buttonPoint setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[buttonPoint setTitle:@"." forState:UIControlStateNormal];

[buttonPoint addTarget:self action:@selector(inputAction:) forControlEvents:UIControlEventTouchUpInside];

[self addSubview:buttonPoint];

UIButton *buttonOK=[[UIButton alloc] initWithFrame:CGRectMake(frame.size.width*0.6, frame.size.height*0.75, frame.size.width*0.19, frame.size.height*0.24)];

[buttonOK.layer setCornerRadius:2.0];

[buttonOK.layer setBorderWidth:0.5];

[buttonOK setBackgroundColor:[UIColor whiteColor]];

[buttonOK setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[buttonOK setTitle:@"确定" forState:UIControlStateNormal];

[buttonOK addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];

[self addSubview:buttonOK];

}

return self;

}

-(void)inputAction:(UIButton *)sender{

[self.delegate myKeyBoardInput:[sender currentTitle]];

}

-(void)backAction:(UIButton *)sender{

if ([[sender currentTitle] isEqualToString:@"确定"]) {

[self.delegate myKeyBoardOK];

}else if ([[sender currentTitle] isEqualToString:@"X"]){

[self.delegate myKeyBoardBack];

}

}

@end

//Test2ViewController.h文件,需要用到自定义软件盘的文本框

#import <UIKit/UIKit.h>

#import "MyKeyboard.h"

@interface Test2ViewController : UIViewController<MykeyBoardDelegate,UITextFieldDelegate>

@end

//Test2ViewController.m文件,需要用到自定义软件盘的文本框

//初始化自定义键盘

MyKeyboard *myKboard=[[MyKeyboard alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height*0.3)];

//引用自定义键盘

_textUser.inputView=myKboard;

//委托

myKboard.delegate=self;

//键盘输入实现

-(void)myKeyBoardInput:(NSString *)inputString{

//点击的是用户名文本框时

if (_textTag==1) {

self.textUser.text=[self.textUser.textstringByAppendingString:inputString];

}else if(_textTag==2){

self.textPwd.text=[self.textPwd.textstringByAppendingString:inputString];

}

}

//键盘删除实现

-(void)myKeyBoardBack{

if (_textTag==1) {

if (self.textUser.text.length>0) {

self.textUser.text=[self.textUser.textsubstringToIndex:self.textUser.text.length-1];

}

}else if (_textTag==2){

if (self.textPwd.text.length>0) {

self.textPwd.text=[self.textPwd.textsubstringToIndex:self.textPwd.text.length-1];

}

}

}

//隐藏键盘实现

-(void)myKeyBoardOK{

if (_textTag==1) {

[_textUser resignFirstResponder];

}else if (_textTag==2){

[_textPwd resignFirstResponder];

}

}

监听键盘弹出或消失消息

//键盘弹出

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardChanged:) name:UIKeyboardWillChangeFrameNotification object:nil];

//键盘消失

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillHide:) name:UIKeyboardWillHideNotification object:nil];

//监听键盘弹出方法

-(void)keyBoardChanged:(NSNotification *)notification{

//UIKeyboardFrameEndUserInfoKey  将要变化的大小

CGRect keyBoardRect=[notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

keyBoardHeight=keyBoardRect.size.height;//获取弹出键盘高度

//键盘弹出时间

   NSTimeInterval time=[notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];

  //下面可以做文本输入框坐标改变动画,与键盘弹出耗费时间一致(体验比较好)

[UIView animateWithDuration:time animations:^{

//self.view.frame=changeFrame;

}];

}

//监听键盘消失方法

-(void)keyBoardWillHide:(NSNotification *)notification{

  //键盘弹出时间

NSTimeInterval time=[notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];

//下面可以做文本输入框坐标改变动画,与键盘弹出耗费时间一致(体验比较好)

[UIView animateWithDuration:time animations:^{

//self.view.frame=changeFrame;

}];

}

UITextField和UITableView自定义下拉列表框

效果图:

iOS,文本输入,键盘相关

//DownboxViewController.h文件

#import <UIKit/UIKit.h>

#import "CommboxView.h"

@interface DownboxViewController : UIViewController

@property (nonatomic,strong) CommboxView *cbView;

@

//DownboxViewController.m文件

#import "DownboxViewController.h"

@interface DownboxViewController ()

@end

@implementation DownboxViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self.view setBackgroundColor:[UIColor whiteColor]];

//1、创建视图

CGFloat yyX = 40;

CGFloat yyY = 40;

CGFloat yyW = self.view.frame.size.width-80;

CGFloat yyH = 100;

CommboxView *yy = [[CommboxView alloc] initWithFrame:CGRectMake(yyX, yyY, yyW, yyH)];

//2、完成布局

[self.view addSubview:yy];

//3、赋值成员变量

self.cbView = yy;

self.cbView.textField.placeholder=@"请选择";

//设置数据

self.cbView.tbArray=[[NSArray alloc] initWithObjects:@"风继续吹",@"真的爱你",@"透明的你",@"爱的太迟",@"Dear friends",@"永远不回头", nil];

}

//结束触摸时,隐藏下拉列表框

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

//isExclusiveTouch一个布尔值来指示接收机处理触摸事件。

//没有触摸_textUser进入if内操作

if (![self.cbView.textField isExclusiveTouch]) {

//resignFirstResponder取消第一响应者状态的。如果对textfield使用的话,那么调用这个方法,textfield的第一响应者状态就会取消,然后键盘就消失了。

[self.cbView.textField resignFirstResponder];

self.cbView.tbView.hidden=YES;

//设置右边view

self.cbView.textField.rightView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"login_textfield_more@2x.png"]];

}

}

@end

//CommboxView.h文件

#import <UIKit/UIKit.h>

@interface CommboxView : UIView<UITableViewDataSource,UITableViewDelegate,UITextFieldDelegate>

@property (nonatomic,strong) UITableView *tbView;//用作显示下拉列表框

@property (nonatomic,strong) NSArray *tbArray;//用作下拉列表框的数据

@property (nonatomic,strong) UITextField *textField;//文本框

@end

//CommboxView.m文件

#import "CommboxView.h"

@implementation CommboxView

- (instancetype)initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];

if ( self )

{

//1、创建视图

CGFloat yyX = 0;

CGFloat yyY = 0;

CGFloat yyW = frame.size.width;

CGFloat yyH = frame.size.height/2.5;

UITextField *uiText=[[UITextField alloc] initWithFrame:CGRectMake(yyX, yyY, yyW, yyH)];

[uiText.layer setCornerRadius:5.0 ];

[uiText.layer setBorderWidth:1.0];

//完成布局

[self addSubview:uiText];

uiText.delegate=self;

//设置右边view

uiText.rightView=[[UIImageView alloc] initWithImage:[UIImageimageNamed:@"login_textfield_more@2x.png"]];

//设置右边样式总是显示

uiText.rightViewMode = UITextFieldViewModeAlways;

//赋值成员变量

self.textField=uiText;

//创建视图

UITableView *uiTable=[[UITableView alloc] initWithFrame:CGRectMake(yyX, yyH, yyW, frame.size.height-yyY)];

uiTable.backgroundColor=[UIColor grayColor];

//分割线颜色

uiTable.separatorColor=[UIColor lightGrayColor];

[uiTable.layer setCornerRadius:5.0];

//完成布局

[self addSubview:uiTable];

uiTable.dataSource=self;

uiTable.delegate=self;

uiTable.hidden=YES;

//赋值成员变量

self.tbView=uiTable;

}

return self;

}

//选中单元格操作

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{

self.textField.text=[_tbArray objectAtIndex:indexPath.row];

[self.textField resignFirstResponder];

self.tbView.hidden=YES;

//设置右边view

self.textField.rightView=[[UIImageView alloc] initWithImage:[UIImageimageNamed:@"login_textfield_more@2x.png"]];

}

//开始编辑文本框时将下拉列表显示

-(void)textFieldDidBeginEditing:(UITextField *)textField{

//取消第一响应者状态,可以到达无焦点,不弹出键盘的效果

[self.textField resignFirstResponder];

self.tbView.hidden=NO;

//设置右边view

self.textField.rightView=[[UIImageView alloc] initWithImage:[UIImageimageNamed:@"login_textfield_more_flip@2x.png"]];

}

//设置单元格宽度

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath{

return self.textField.frame.size.height*0.8;

}

//每个分区多少行

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

return self.tbArray.count;

}

//设置单元格

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

static NSString *cellDo=@"cellDo";

UITableViewCell *cell=(UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellDo];

if (!cell) {

cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellDo];

}

[[cell textLabel] setText:[_tbArray objectAtIndex:indexPath.row]];

cell.backgroundColor=[UIColor grayColor];

return  cell;

}

@end

使用UIPickerView在UITextField实现滚动选择

//

//  PickerTestViewController.m

//

//

//  Created by Vie on 15/10/12.

//

//

#import "PickerTestViewController.h"

@interface PickerTestViewController ()<UIPickerViewDelegate,UIPickerViewDataSource>

@property(nonatomic,strong)UIPickerView *pickerView;

@property(nonatomic,strong)UITextField *txField;

@property(nonatomic,strong)NSMutableArray *yearArray,*monthArray,*dayArray;

@end

@implementation PickerTestViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self.view setBackgroundColor:[UIColor whiteColor]];

self.yearArray=[[NSMutableArray alloc] initWithObjects:@"2013",@"2014",@"2015", nil];

self.monthArray=[[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

self.dayArray=[[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8", nil];

self.pickerView=[[UIPickerView alloc] init];

self.pickerView.dataSource=self;

self.pickerView.delegate=self;

self.txField=[[UITextField alloc] initWithFrame:CGRectMake(self.view.frame.size.width*0.1f, 100, self.view.frame.size.width*0.8f, 44)];

self.txField.layer.borderWidth=1.0f;

self.txField.layer.cornerRadius=5.0f;

[self.view addSubview:self.txField];

//设置输入框的弹出视图为UIPickerView

self.txField.inputView=self.pickerView;

}

//用户选中某个row时,对应改变文本

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

[self setTxFieldText];

}

//结束文本框触摸时隐藏UIPickerView

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

if (![self.txField  isExclusiveTouch]) {

[self.txField resignFirstResponder];

[self setTxFieldText];

}

}

//将文本框的内容设置为滚动表格选中值

-(void)setTxFieldText{

self.txField.text=[NSString stringWithFormat:@"%@-%@-%@",[self.yearArrayobjectAtIndex:[self.pickerView selectedRowInComponent:0]],[self.monthArrayobjectAtIndex:[self.pickerView selectedRowInComponent:1]],[self.dayArrayobjectAtIndex:[self.pickerView selectedRowInComponent:2]]];

}

//指定UIPickerView上的文本

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

NSString *str;

if (component==0) {

str=[self.yearArray objectAtIndex:row];

}else if (component==1){

str=[self.monthArray objectAtIndex:row];

}else{

str=[self.dayArray objectAtIndex:row];

}

return str;

}

//返回每个轮最大的行数。

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

if (component==0) {

return self.yearArray.count;

}else if (component==1){

return self.monthArray.count;

}else{

return self.dayArray.count;

}

}

//返回一个整数,表示列数

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{

return 3;

}

@end

使用UIDatePicker在UITextField实现日期选择

//

//  DatePickerViewController.h

//

//

//  Created by Vie on 15/10/12.

//

//

#import <UIKit/UIKit.h>

@interface DatePickerViewController : UIViewController

@end

//

//  DatePickerViewController.m

//

//

//  Created by Vie on 15/10/12.

//

//

#import "DatePickerViewController.h"

@interface DatePickerViewController ()

@property(nonatomic,strong)UITextField *txField;

@property(nonatomic,strong)UIDatePicker *datePicker;

@end

@implementation DatePickerViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self.view setBackgroundColor:[UIColor whiteColor]];

self.txField=[[UITextField alloc] initWithFrame:CGRectMake(self.view.frame.size.width*0.1f, 100, self.view.frame.size.width*0.8f, 44)];

self.txField.layer.borderWidth=1.0f;

self.txField.layer.cornerRadius=5.0f;

self.txField.placeholder=@"选择日期";

[self.view addSubview:self.txField];

self.datePicker=[[UIDatePicker alloc] init];

//设置日期选取器模式

self.datePicker.datePickerMode=UIDatePickerModeDate;

//默认根据手机本地设置来显示为中文还是其他语言

NSLocale *locale=[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];//设置为中文显示

self.datePicker.locale=locale;

//设置日期范围

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat: @"yyyy-MM-dd"];

NSDate *minDate= [dateFormatter dateFromString:@"1970-01-01"];

NSDate *maxDate=[dateFormatter dateFromString:@"2030-12-31"];

self.datePicker.minimumDate=minDate;

self.datePicker.maximumDate=maxDate;

//设置响应时间

[self.datePicker addTarget:self action:@selector(pickerValueChanged) forControlEvents:UIControlEventValueChanged];

[self.txField setInputView:self.datePicker];

}

//结束文本框触摸时隐藏UIPickerView

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

if (![self.txField  isExclusiveTouch]) {

[self.txField resignFirstResponder];

[self setTxFieldText];

}

}

//选择器改变时,对应改变文本框内容

-(void)pickerValueChanged{

[self setTxFieldText];

}

//设置文本框内容

-(void)setTxFieldText{

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat: @"yyyy-MM-dd"];

NSString *dateString=[dateFormatter stringFromDate:self.datePicker.date];

self.txField.text=dateString;

}

@end

设置文本输入框样式

//图片验证码输入

self.imgLable=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, telLableWidth, telLableHeight)];

self.imgLable.text=@"验证码";

self.imgLable.textColor=[UIColor blackColor];

self.imgLable.numberOfLines=0;

self.imgLable.textAlignment=NSTextAlignmentCenter;

self.imgLable.font=[UIFont fontWithName:@"Arial" size:18.0f];

UIView *imgBgView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 95, 40)];

self.codeImgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 80, 38)];

self.codeImgView.center=imgBgView.center;

self.codeImgView.backgroundColor=[UIColor grayColor];

[imgBgView addSubview:self.codeImgView];

float imgCodeFielY=statusHeight+navHeight+30+self.telLable.frame.size.height;

self.imgCodeField=[[UITextField alloc] initWithFrame:CGRectMake(0, imgCodeFielY, telFieldWidth, telLableHeight)];

self.imgCodeField.placeholder=@"输入图片验证码";

[self.imgCodeField setBorderStyle:UITextBorderStyleRoundedRect];

//设置输入框左边视图

self.imgCodeField.leftView=self.imgLable;

self.imgCodeField.leftViewMode=UITextFieldViewModeAlways;

//设置输入框右边视图

self.imgCodeField.rightView=imgBgView;

self.imgCodeField.rightViewMode=UITextFieldViewModeAlways;

self.imgCodeField.tag=102;

self.imgCodeField.delegate=self;

self.imgCodeField.keyboardType=UIKeyboardTypeEmailAddress;

[self.view addSubview:self.imgCodeField];

iOS,文本输入,键盘相关

实现带文本输入的UIAlertView弹窗

UIAlertView *alerView=[[UIAlertView alloc] initWithTitle:@"请输入账户密码" message:nil delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];

[alerView setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];

UITextField *accountField=[alerView textFieldAtIndex:0];

accountField.placeholder=@"请输入账户";

UITextField *pwdField=[alerView textFieldAtIndex:1];

pwdField.placeholder=@"请输入密码";

[alerView show];

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

NSLog(@"账号:%@;密码:%@",[alertView textFieldAtIndex:0].text,[alertView textFieldAtIndex:1].text);

}

上一篇:Spring boot 下使用 Swagger


下一篇:安全测试8_Web安全实战3(命令注入)