重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//键盘的高度
成都创新互联公司成立于2013年,先为望谟等服务建站,望谟等地企业,进行企业商务咨询服务。为望谟企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
2 我们先定义两个textField:用来接收键盘的输入值
UITextField * textfield2 = [[UITextField alloc] initWithFrame:CGRectMake(170, 240, 180, 40)];
textfield2.tag = 222;
textfield2.backgroundColor = [UIColor orangeColor];
textfield2.layer.cornerRadius = 5;
textfield2.layer.masksToBounds = YES;
textfield2.clearButtonMode = UITextFieldViewModeAlways;
[self.view addSubview:textfield2];
UITextField * textfield3 = [[UITextField alloc] initWithFrame:CGRectMake(170, 300, 100, 40)];
textfield3.tag = 223;
textfield3.placeholder = @"验证码";
textfield3.layer.cornerRadius = 5;
textfield3.layer.masksToBounds = YES;
textfield3.clearButtonMode = UITextFieldViewModeAlways;
textfield3.backgroundColor = [UIColor whiteColor];
[self.view addSubview:textfield3];
3 //键盘的辅助视图
//设置辅助视图的大小
UIView * grayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 40)];
//辅助视图的背景颜色
grayView.backgroundColor = [UIColor lightGrayColor];
//.注意!!关键给键盘设置辅助视图
textfield2.inputAccessoryView = grayView;
textfield3.inputAccessoryView = grayView;
//注意!!!!!!在这里我们用数组来接收1-9的值
NSArray * array = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"×",@"0",@"return"];
//X号操作删除最后一个字符
//return 收回键盘
NSInteger index=0;
//设置每一行走的次数
for (int i = 0; i4; i++) {
//设置每一趟走的次数
for (int j = 0; j3; j++) {
//数组按钮的颜色
button.backgroundColor = [UIColor whiteColor];
//数组按钮上的文字
[button setTitle:array[index] forState:UIControlStateNormal];
index++;//将数组的元素进行累加统计
//设置字体颜色
[button setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
//加粗字体
button.titleLabel.font = [UIFont boldSystemFontOfSize:20];
//设置边框的颜色
button.layer.borderColor = [UIColor grayColor].CGColor;
//设置边框的宽度
button.layer.borderWidth = 3;
//设置1-9的数字方法
if (i3) {
[button addTarget:self action:@selector(b1Action:) forControlEvents:UIControlEventTouchUpInside];
}
else if(i == 3 j == 0){
//叉号 用来删除字符
[button addTarget:self action:@selector(deleteChar:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)b1Action:(UIButton *)b1{
//点击当前按钮 就把按钮上的文字 拼接到输入框中
//1.获取输入框
}
-(void)deleteChar:(UIButton *)button{
}
-(void)takeBackKeyboard:(UIButton *)button{
UITextField *textField2 = (UITextField *) [self.view viewWithTag:222];
//释放第一响应者 也就是收回键盘
if (textField2.isFirstResponder == YES) {
[textField2 resignFirstResponder];}
}
效果如图:
在iOS中使用UITextField控件时会弹出软键盘,此时默认在软键盘上方会出现一个工具条,一般默认工具条有两种样式。
可以设置info.plist文件的Localization native development region项为cn,此时运行会发现工具条的Done已经变成了完成。
本人在项目中有用到 IQKeyboardManager 来增强键盘的功能,如果使用了这个轮子,设置
此时键盘的工具条即被隐藏。
第二种方法我使用了UITextField的inputAccessoryView属性,可以给该属性设置一个高度为0的View,也可以达到隐藏键盘工具条的效果
跟隐藏工具条中的第二种方法一样,给inputAccessoryView属性设置一个自定义的View,即达到自定义效果,此处把工具条改成红色作为演示
运行效果如下:
自定义键盘属于App的扩展功能,添加扩展键盘的步骤如下:
选择自定义扩展键盘,点击Next,会自动创建一个父类是UIInputViewController 的KeyboardViewController文件。
要想app应用和扩展进行通讯,需要创建Appgroup通道,创建方法如下图所示
同样在Targets 下的 app选中也要用同样的方法创建传送通道,app和扩展才可以传递数据。
下面就是画键盘了,键盘可以用xib创建,下面就是我创建的键盘
下面就是监听button点击,进行大小写切换,删除输入等功能。
大小写切换可以自定义一个方法,然后根据传入的是否大写或者小写,返回数组内容,重新给button赋值
监听内容输入到输入框,系统有自己的方法。
"[weakSelf.textDocumentProxyinsertText:content];”
就可以进行监听输入的内容了
平常项目中有可能会遇到系统或者第三方键盘不满足于需求,我们就只能自定义键盘来满足产品的奇奇怪怪需求
如图:
1、 LAKeyboardDefine.h
2、通过设置颜色返回图片的分类 UIImage+LAColor
3、获取 UITextField 光标的分类 UITextField+LARange