限制UIAlertView上的TextField的输入字符长度
来源:互联网 发布:今日值得买网站源码 编辑:程序博客网 时间:2024/05/01 06:10
一个汉字占两个字符长度
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"签名" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
alertView.alertViewStyle = UIAlertViewStylePlainTextInput; //设置AertView的样式,带有一个输入框alertView.delegate = self;
[[alertView textFieldAtIndex:0] addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; //给alertView的textField添加一个事件 因为TextField没有didChange方法
//alertView的textField的响应事件
- (void)textFieldDidChange:(UITextField *)textField
{
if (textField.markedTextRange == nil) { //输入中文时,当英文转为中文后再调用convertToInt::事件
textField.text = [self convertToInt:textField.text :64];
}
}
- (NSString *)convertToInt:(NSString *)text :(int)length
{
int i, n = [text length], l = 0, a = 0, b = 0;
int len = 0;
unichar c;
for (i = 0; i < n; i++) {
c = [text characterAtIndex:i];
if (isblank(c)) { // 判断输入的字符是否为空格或者换行
b++;
} else if (isascii(c)) { // 判断输入的字符是否为英文
a++;
} else { // 判断输入的字符是否为中文
l++;
}
len = l * 2 + (int)ceilf((float) (a + b)); // ceilf去最接近的较大整数
if (len > length) {
[[UIApplication sharedApplication].keyWindow makeToast:[NSString stringWithFormat:@"最多只允许输入%d个英文字符,汉字占两个字符", length] duration:defaultDuration position:@"center"];
return [text substringToIndex:i];
}
}
if (a == 0 && l == 0) {
return text;
}
return text;
}
{
int i, n = [text length], l = 0, a = 0, b = 0;
int len = 0;
unichar c;
for (i = 0; i < n; i++) {
c = [text characterAtIndex:i];
if (isblank(c)) { // 判断输入的字符是否为空格或者换行
b++;
} else if (isascii(c)) { // 判断输入的字符是否为英文
a++;
} else { // 判断输入的字符是否为中文
l++;
}
len = l * 2 + (int)ceilf((float) (a + b)); // ceilf去最接近的较大整数
if (len > length) {
[[UIApplication sharedApplication].keyWindow makeToast:[NSString stringWithFormat:@"最多只允许输入%d个英文字符,汉字占两个字符", length] duration:defaultDuration position:@"center"];
return [text substringToIndex:i];
}
}
if (a == 0 && l == 0) {
return text;
}
return text;
}
0 0
- 限制UIAlertView上的TextField的输入字符长度
- 限制UIAlertView上的TextField的输入字符长度
- iOS限制TextField可输入的长度
- iOS textfield限制输入的最大长度
- 限制TextField的长度
- textfield设置只能输入的字符长度
- TextField中进行字符的输入限制
- TextField中进行字符的输入限制
- 关于textfield与textview限制输入字符长度时的越界
- textField限制输入长度
- iOS开发之textField字符长度限制的方法
- TextField限制输入字符
- 限制文本框输入的字符长度
- 限制输入字符的长度和内容
- .net 限制textbox的输入字符长度
- 限制textView的输入字符长度
- 限制textView的输入字符长度
- iOS 限制输入框的字符长度
- Spring Framework源码(十):SpringMVC之文件上传
- 重要开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
- 杨辉三角形
- Servlet的基于annotation的服务端验证
- Cocos2d-x 3.2 -- 总结数学类Vec2/Size/Rect
- 限制UIAlertView上的TextField的输入字符长度
- apk应用版本更新,后台下载
- 1050.String Subtraction
- 字符串格式化符号含义
- linux TCP socket 通信demo
- 【数据结构与算法】汉诺塔算法——java递归实现
- 文件的打开模式和文件对象方法
- 1051.Pop Sequence
- MySQL时间格式转换函数date_format()用法详解