UItextfield limit chinese word

#import"ViewController.h"

#import"NSString+category.h"

@interfaceViewController ()

@property(strong,nonatomic)UITextField* textfield;

@end

#define kMaxNumber15

@implementationViewController

- (UITextField*)textfield{

if(!_textfield)

{

_textfield= [[UITextFieldalloc]initWithFrame:CGRectMake(10,100,200,40)];

_textfield.delegate=self;

_textfield.placeholder=@"请输入";

_textfield.returnKeyType=UIReturnKeyDone;

[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(textFiledDidChange:)

name:@"UITextFieldTextDidChangeNotification"

object:_textfield];

}

return_textfield;

}

- (void)viewDidLoad {

[superviewDidLoad];

self.view.backgroundColor= [UIColorgrayColor];

[self.viewaddSubview:self.textfield];

}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string

{

NSLog(@"打印信息:%lu-----%lu ",(unsignedlong)range.location,(unsignedlong)range.length);

NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];

if(toBeString.length > kMaxNumber && range.length!=1){

textField.text = [toBeString substringToIndex:kMaxNumber];

returnNO;

}

returnYES;

}

- (void)textFiledDidChange:(NSNotification*)sender

{

UITextField *textField = (UITextField *)sender.object;

NSString *toBeString = textField.text;

NSString *lang = [[textField textInputMode] primaryLanguage];//键盘输入模式

if([lang isEqualToString:@"zh-Hans"]) {//简体中文输入,包括简体拼音,健体五笔,简体手写

UITextRange *selectedRange = [textField markedTextRange];

//获取高亮部分

UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];

//没有高亮选择的字,则对已输入的文字进行字数统计和限制

if(!position) {

if(toBeString.length > kMaxNumber) {

textField.text = [toBeString substringToIndex:kMaxNumber];

}

}

//有高亮选择的字符串,则暂不对文字进行统计和限制

else{

}

}

//中文输入法以外的直接对其统计限制即可,不考虑其他语种情况

else{

if(toBeString.length > kMaxNumber) {

textField.text = [toBeString substringToIndex:kMaxNumber];

}

}

}

//- (int)convertToInt:(NSString*)strtemp

//{

//int strlength = 0;

//char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];

//for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {

//if (*p) {

//p++;

//strlength++;

//}

//else {

//p++;

//}

//

//}

//return strlength;

//}

#pragma mark - UITextFieldDelegate

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

[textFieldresignFirstResponder];

returnYES;

}

-(void)dealloc{

[[NSNotificationCenter defaultCenter]removeObserver:self

name:@"UITextFieldTextDidChangeNotification"

object:self.textfield];

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
11876次浏览 105人参与
# 你的实习产出是真实的还是包装的? #
2066次浏览 43人参与
# 巨人网络春招 #
11404次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7744次浏览 43人参与
# 简历第一个项目做什么 #
31835次浏览 345人参与
# 重来一次,我还会选择这个专业吗 #
433667次浏览 3926人参与
# 米连集团26产品管培生项目 #
6245次浏览 216人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187312次浏览 1122人参与
# 牛客AI文生图 #
21469次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152560次浏览 888人参与
# 研究所笔面经互助 #
118993次浏览 577人参与
# 简历中的项目经历要怎么写? #
310551次浏览 4230人参与
# AI时代,哪些岗位最容易被淘汰 #
64080次浏览 837人参与
# 面试紧张时你会有什么表现? #
30531次浏览 188人参与
# 你今年的平均薪资是多少? #
213254次浏览 1039人参与
# 你怎么看待AI面试 #
180338次浏览 1266人参与
# 高学历就一定能找到好工作吗? #
64352次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76650次浏览 374人参与
# 我的求职精神状态 #
448238次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363732次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160726次浏览 1112人参与
# 校招笔试 #
471657次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务