键盘处理
Posted 西贝了爷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了键盘处理相关的知识,希望对你有一定的参考价值。
一、键盘风格
UIKit框架支持8种风格键盘。
- typedef enum {
- UIKeyboardTypeDefault, // 默认键盘:支持所有字符
- UIKeyboardTypeASCIICapable, // 支持ASCII的默认键盘
- UIKeyboardTypeNumbersAndPunctuation, // 标准电话键盘,支持+*#等符号
- UIKeyboardTypeURL, // URL键盘,有.com按钮;只支持URL字符
- UIKeyboardTypeNumberPad, //数字键盘
- UIKeyboardTypePhonePad, // 电话键盘
- UIKeyboardTypeNamePhonePad, // 电话键盘,也支持输入人名字
- UIKeyboardTypeEmailAddress, // 用于输入电子邮件地址的键盘
- } UIKeyboardType;
用法用例:textView.keyboardtype= UIKeyboardTypeNumberPad;
二:开启/隐藏键盘
开启:[theTextField becomeFirstResponder];
隐藏:[theTextField resignFirstResponder];
[self.view endEditing:YES] ; 这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏。
//点击空白处关闭键盘
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES]; }
三:安全文本输入 textView.secureTextEntry=YES;
统计字符:
1、UITextView
- (void)textViewDidChange:(UITextView *)textView { int count = [textView.text length]; //这里的count就是字符个数了 }
2、UITextField
方法一:
自己先为UITextField的Editing Changed事件添加一个响应方法
-(IBAction)valuechange//m_TextField是UITextField的一个IBOutlet { int count = [m_TextField.text length]; //count就是当前的字符个数 //下边是将字符限制在140以内 if ([m_TextField.text length]>140) { [m_TextField setText:[m_TextField.text substringToIndex:140]];//多出140时,只取前140个字符 } }
方法二:
在代理方法:-(BOOL)textField:(UITextField *)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString*)string,判断range.length的值来判断输入的是回格还是其它字符
响应Return键:
1、UITextView
//代理方法
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if (1 == range.length) {//按下回格键 return YES; } if ([text isEqualToString:@"\n"]) {//按下return键 //这里隐藏键盘,不做任何处理 [textView resignFirstResponder]; return NO; }else { if ([textView.text length] < 140) {//判断字符个数 return YES; } } return NO; }
2、UITextField
这个直接有代理方法哈
- (BOOL)textFieldShouldReturn:(UITextField *)textField
以上是关于键盘处理的主要内容,如果未能解决你的问题,请参考以下文章