ios--uitextfield动态限制输入的字数(解决方式)

1、定义一个事件:

-(IBAction)limitLength:(UITextField *)sender
{
    bool isChinese;//推断当前输入法是否是中文
    if ([[[UITextInputMode currentInputMode] primaryLanguage] isEqualToString: @"en-US"]) {
        isChinese = false;
    }
    else
    {
        isChinese = true;
    }

    if(sender == self.txtName) {
        // 8位
        NSString *str = [[self.txtName text] stringByReplacingOccurrencesOfString:@"?" withString:@""];
        if (isChinese) { //中文输入法下
                UITextRange *selectedRange = [self.txtName markedTextRange];
                //获取高亮部分
                UITextPosition *position = [self.txtName positionFromPosition:selectedRange.start offset:0];
                // 没有高亮选择的字,则对已输入的文字进行字数统计和限制
                if (!position) {
                    NSLog(@"汉字");
                    if ( str.length>=9) {
                        NSString *strNew = [NSString stringWithString:str];
                        [self.txtName setText:[strNew substringToIndex:8]];
                    }
                }
                else
                {
                    NSLog(@"输入的英文还没有转化为汉字的状态");

                }
        }else{
            NSLog(@"str=%@; 本次长度=%d",str,[str length]);
            if ([str length]>=9) {
                NSString *strNew = [NSString stringWithString:str];
                [self.txtName setText:[strNew substringToIndex:8]];
            }
        }
    }
}

2、对UITextField控件加入监听事件:

    //UIControlEventEditingChanged
    [self.txtName addTarget:self action:@selector(limitLength:) forControlEvents:UIControlEventEditingChanged];
时间: 2024-10-11 16:29:13

ios--uitextfield动态限制输入的字数(解决方式)的相关文章

uitextfield动态限制输入的字数-b

1.定义一个事件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 -(IBAction)limitLength:(UITextField *)sender {     bool isChinese;//判断当前输入法是否是中文     if ([[[UITextInputMode currentInputMode] pri

UItextfield 动态限制输入的字数

@property (nonatomic, strong) UITextField *txtName; - (void)viewDidLoad { [super viewDidLoad]; //UIControlEventEditingChanged(包括中文和英文等输入法) [self.txtName addTarget:self action:@selector(limitLength:) forControlEvents:UIControlEventEditingChanged]; } /

ios--uitextfield动态限制输入的字数

1.定义一个事件: -(IBAction)limitLength:(UITextField *)sender { bool isChinese;//判断当前输入法是否是中文 if ([[[UITextInputMode currentInputMode] primaryLanguage] isEqualToString: @"en-US"]) { isChinese = false; } else { isChinese = true; } if(sender == self.txtN

iOS 7/8--uitextfield动态限制输入的字数

1.定义一个事件: -(IBAction)limitLength:(UITextField *)sender { bool isChinese;//判断当前输入法是否是中文 if([[[UITextInputMode currentInputMode] primaryLanguage] isEqualToString: @"en-US"]) { isChinese = false; } else { isChinese = true; } if(sender == self.txtNa

iOS:UITextField中文输入法输入时对字符长度的限制

如题的问题,又是个让我抓狂了大半天的问题,还是做个记录,有与类似问题的同学可参考,但不一定对.具体问题还需具体分析.我遇到的需求是这样的:有一个输入框,输入框内输入文字,文字字数限制在20字. 我采用了UITextField作为我的输入框控件,并且在委托方法: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)s

native-base中Input,Textarea等组件在ios平台下不能输入中文

在上文react-native中TextInput在ios平台下不能输入中文已经解决. 但是在native-base中Input和Textarea都存在这样的问题.为了不要写多个组件,封装以下代码: import React from 'react'; import PropTypes from 'prop-types'; import { Platform, } from 'react-native'; import { Textarea, Input, } from 'native-base

JS实现动态提示文本框可输入剩余字数(类似发表微博数字提示)

一.实现效果: 为了更直观的体现用户在文本框输入文本时能看到自己输入了多少字,项目中需要通过判断提示文本框剩余可输入字数. html & JS: 1 <div> 2 <textarea name="content" id="content" onkeyup="javascript:checkWords(this);" onmousedown="javascript:checkWords(this);"

UITextField限制输入中文字数

前面写一了篇,UITextField Category来限制输入的字数,是有个Bug的,要输入中文时会crash.现在修改 了下,代码如下 .h文件 #import <UIKit/UIKit.h> @interface UITextField (LimitLength) /** * 使用时只要调用此方法,加上一个长度(int),就可以实现了字数限制,汉字不可以 * * @param length */ - (void)limitTextLength:(int)length; /** * uit

iOS本地动态验证码生成-b

用于ios本地动态生成验证码,效果如下: demo.gif 导入CoreGraphics.framework用于绘制图形 封装UIView,便捷使用,代码如下: AuthcodeView.h #import <UIKit/UIKit.h> @interface AuthcodeView : UIView @property (strong, nonatomic) NSArray *dataArray;//字符素材数组 @property (strong, nonatomic) NSMutabl