文档章节

UITextView和UITextField字数输入控制

langzhouzhou1
 langzhouzhou1
发布于 2016/04/03 12:26
字数 336
阅读 64
收藏 1

上代码

UITextView

//每次TextView输入或删除的时候都会调用这个协议方法   <UITextViewDelegate>
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    //用指定的字符串替换字符串,返回新的字符串
    NSString * new = [textView.text stringByReplacingCharactersInRange:range withString:text ];
    //保证新建通知的内容输入框最多只能输入4个字
    NSInteger res = 4 - new.length;
    if (res >= 0) {
        return YES;
    }else{
        return NO;
    }
}

但是这个方法如果输入是中文或者是联想词的时候都会出现问题,这是因为这个方法

    NSString * new = [textView.text stringByReplacingCharactersInRange:range withString:text ];

不识别中文以及联想词。

在加一个这个就可以了

-(void)textViewDidChange:(UITextView *)textView
{
    //如果是联想词的话下面 shouldChange。。。这个方法会无法识别
    if (textView.text.length > 4) {
        textView.text = [textView.text substringToIndex:4];
    }


UITextField

#pragma mark - textField Delegate
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *new = [textField.text stringByReplacingCharactersInRange:range withString:string];
    NSInteger res = 4 - new.length;
    if (res >= 0) {
        return YES;
    }else{
        return NO;
    }
}

//同样会有相同问题需要在加一个方法
[_textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

//shouldChangeCharacter不是识别中文和联想字所以在加一个这个,这个方法是自己写的,不是协议里已有的方法。
- (void)textFieldDidChange:(UITextField *)textField
{
    if (textField == self.inputTxt) {
        if (textField.text.length > 4) {
            textField.text = [textField.text substringToIndex:4];
        }
    }
}

其实就是两个方法很简单。

© 著作权归作者所有

langzhouzhou1
粉丝 4
博文 127
码字总数 62039
作品 0
杭州
私信 提问
ios中实现对UItextField,UITextView等输入框的字数限制

转: 如何实现对UITextField ,UITextView等输入框的 字数限制 1. 如何实现对UITextField ,UITextView等输入框的 字数限制 (1)首先,肯定要 让controller 实现 UITextFieldDelegate (针对...

meilidashijie
2013/01/08
5.1K
0
用基本控件简单地仿QQ登录界面

// Created by 妖精的尾巴 on 15-8-14. // Copyright (c) 2015年 妖精的尾巴. All rights reserved. // #import "ViewController.h" @interface ViewController () { UILabel backgroundLab......

不孤独的美食家
2015/08/14
790
0
iOS小技巧---改变uisearchbar中的cancel按钮的文字、取消clearButton

#pragma mark searchBar开始输入文字时 //汉化取消按钮 - (void)searchBarTextDidBeginEditing:(UISearchBar )searchBar{ searchBar.showsCancelButton = YES; if ([[[UIDevice currentDevi......

夕阳_jhe
2015/04/15
284
0
UITextView控件的详细讲解

1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码: [csharp]view plaincopy #import <UIKit/UIKit.h> @interface TextViewController : UIViewController <UITextViewDeleg......

meilidashijie
2013/01/07
2.4K
0
用UITextView撸一个顺畅的评论输入框

对比UITextField 继承关系: UITextField继承自UIControl,UITextView继承自UIScrollView; 输入行数 UITextView支持多行输入,可以滑屏垂直滚动,UITextField仅支持单行输入 Placeholder UI...

STzen
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JS基础-该如何理解原型、原型链?

JS的原型、原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清楚,更多的"很可能"是一知半解,而这部分内容又是JS的核心内容,想要技术进阶的话肯定不能对这个...

OBKoro1
今天
7
0
高防CDN的出现是为了解决网站的哪些问题?

高防CDN是为了更好的服务网络而出现的,是通过高防DNS来实现的。高防CDN是通过智能化的系统判断来路,再反馈给用户,可以减轻用户使用过程的复杂程度。通过智能DNS解析,能让网站访问者连接到...

云漫网络Ruan
今天
14
0
OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
3K
24
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
46
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部