iOS自定义输入法之数字键盘
iOS中最常用的输入控件有UITextFiled和UITextView,当有特殊需要的时候我们会用到自定义的输入法。
下面简单介绍创建一个只用于输入数字的输入法。
1.创建一个基于UIView的类myInputView,添加0-9十个按钮(tag值为10000-10009),再添加一个删除按钮和退格按钮。
点击数字按钮响应(inPutNumber)方法,这里把button传过来
//输入
-(void)inPutNumber:(UIButton *)aButton{ int aNumber=aButton.tag-9999;//获取按钮的Tag值 [_textFiled insertText:[NSString stringWithFormat:@"%d",aNumber]];//转换为字符串后插入到光标位置
}
删除按钮的响应方法很简单,设为Nil就行了。
退格虽然系统有专门的方法,但是每次只能删除最后一个字符,这里创建一个可以在中间删除任意字符的方法。
//退格
-(void)inputBackSpace{UITextRange *rang=[_textFiled selectedTextRange];//获取所选的RangeUITextPosition *start1= rang.start;//得到该Range的起始位置NSString *str1=[NSString stringWithFormat:@"%@",start1.description];//获取start1的信息并保存到一个字符串中NSArray *strArray=[str1 componentsSeparatedByString:@","];//获取用 ","分离出的字符串数组int cursorIndex=[strArray[1] intValue];//获取光标在文本中的位置if (cursorIndex>=1) { //判断光标位置是否为1,如果光标位置小于1执行下面的语句会导致光标从文本框中消失start1 = [_textFiled positionFromPosition:start1 offset:-1];//将光标位置左移一位UITextRange *newRang=[_textFiled textRangeFromPosition:start1 toPosition:rang.end ];//得到新的selectedTextRange,包含一个字符[_textFiled replaceRange:newRang withText:@""];//用空串替换新的selectedTextRange}
}
2.在UIViewController中分别创建一个myInputView对象(textFiled1)和UITextField对象(myKeyboard),并添加以下两条语句
[textFiled1 setInputView:myKeyboard];[myKeyboard setTextFiled:textFiled1];
至此,就可以在点击文本输入框的时候显示自定义的数字键盘。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
