iOS UITextField输入字数提示以及判断输入字体类型
2015-12-30 11:17
676 查看
1.创建UITeextField并设置delegateUITextFieldDelegate
editText = [[UITextField alloc] initWithFrame:CGRectMake(20, 40, ScreenSize.width-40, 40)];
editText.backgroundColor = [UIColor whiteColor];
editText.clearButtonMode = UITextFieldViewModeWhileEditing;
editText.delegate=self;
editText.font = FONT(14);
editText.textColor = COLOR(188, 191, 196);
editText.leftView = leftView;
editText.leftViewMode = UITextFieldViewModeAlways;
[editText addTarget:self action:@selector(limitLength:) forControlEvents:UIControlEventEditingChanged];
2.执行方法
-(void)limitLength:(UITextField *)sender
{
bool isChinese;//判断当前输入法是否是中文
if ([[editText.textInputMode primaryLanguage] isEqualToString: @"en-US"]) {
isChinese = false;
}
else
{
isChinese = true;
}
if(sender == editText) {
// 8位
NSString *str = [[editText text] stringByReplacingOccurrencesOfString:@"?" withString:@""];
if (isChinese) { //中文输入法下
UITextRange *selectedRange = [editText markedTextRange];
//获取高亮部分
UITextPosition *position = [editText positionFromPosition:selectedRange.start offset:0];
//没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (!position) {
if (str.length < 16) {
numLa.text = [NSString stringWithFormat:@"%lu", 15 - (unsigned long)str.length];
}
if ( str.length>=16) {
NSString *strNew = [NSString stringWithString:str];
[editText setText:[strNew substringToIndex:15]];
}
}
else
{
NSLog(@"输入的英文还没有转化为汉字的状态");
}
}else{
// NSLog(@"str=%@;
本次长度=%lu",str,(unsigned long)[str length]);
if (str.length < 16) {
numLa.text = [NSString stringWithFormat:@"%lu", 15 - (unsigned long)str.length];
}
if ( str.length>=16) {
NSString *strNew = [NSString stringWithString:str];
[editText setText:[strNew substringToIndex:15]];
}
}
}
}
editText = [[UITextField alloc] initWithFrame:CGRectMake(20, 40, ScreenSize.width-40, 40)];
editText.backgroundColor = [UIColor whiteColor];
editText.clearButtonMode = UITextFieldViewModeWhileEditing;
editText.delegate=self;
editText.font = FONT(14);
editText.textColor = COLOR(188, 191, 196);
editText.leftView = leftView;
editText.leftViewMode = UITextFieldViewModeAlways;
[editText addTarget:self action:@selector(limitLength:) forControlEvents:UIControlEventEditingChanged];
2.执行方法
-(void)limitLength:(UITextField *)sender
{
bool isChinese;//判断当前输入法是否是中文
if ([[editText.textInputMode primaryLanguage] isEqualToString: @"en-US"]) {
isChinese = false;
}
else
{
isChinese = true;
}
if(sender == editText) {
// 8位
NSString *str = [[editText text] stringByReplacingOccurrencesOfString:@"?" withString:@""];
if (isChinese) { //中文输入法下
UITextRange *selectedRange = [editText markedTextRange];
//获取高亮部分
UITextPosition *position = [editText positionFromPosition:selectedRange.start offset:0];
//没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (!position) {
if (str.length < 16) {
numLa.text = [NSString stringWithFormat:@"%lu", 15 - (unsigned long)str.length];
}
if ( str.length>=16) {
NSString *strNew = [NSString stringWithString:str];
[editText setText:[strNew substringToIndex:15]];
}
}
else
{
NSLog(@"输入的英文还没有转化为汉字的状态");
}
}else{
// NSLog(@"str=%@;
本次长度=%lu",str,(unsigned long)[str length]);
if (str.length < 16) {
numLa.text = [NSString stringWithFormat:@"%lu", 15 - (unsigned long)str.length];
}
if ( str.length>=16) {
NSString *strNew = [NSString stringWithString:str];
[editText setText:[strNew substringToIndex:15]];
}
}
}
}
相关文章推荐
- UIWindow简单介绍
- 在SOUI中非半透明窗口如何实现圆角窗口?
- IOS开发-UIView之动画效果的实现方法(一)
- Android stduio 快捷键
- UIAlertController
- 如何使用 Cloud Insight SDK 实现 Druid 监控?
- 关于UILabel产生黑边的原因及去除方法
- 如何得到iPhone手机的UUID
- checking host system type... configure: error: can not guess host type; you must specify one
- 如何使用 Cloud Insight SDK 实现 Druid 监控?
- Leetcode: Range Sum Query - Immutable
- 黑马程序员--OC自学笔记---10Foundation、NSFileManager、iOS沙盒、OC结构体、NSNumber、NSValue、NSDate、copy、单例模式
- Leetcode: Range Sum Query 2D - Immutable
- UIControl的介绍和使用
- CALayer与UIView的关系
- UpdateData(TRUE)和UpdateData(FALSE)的区别
- java.sql.SQLException:Column count doesn't match value count at row 1
- iOS 通过HEX(十六进制)得到一个UIColor的对象
- 虚拟环境下使用fuel安装部署opesntack
- UGUI中Button和Toggle 添加动态事件