OC中限制UITextView的最大字数的实现-程序员宅基地

一、属性

//自定义的textview
@property (weak, nonatomic) IBOutlet UITextView *textview; //添加一个bool类型的属性 @property (nonatomic, assign) BOOL isNameTextFieldEnbable;

二、监听通知、并初始化BOOL值

//UITextView的监听方法
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textchange:) name:UITextViewTextDidChangeNotification object:nil]; //初始化为YES,让textView开始输入有反应 self.isNameTextFieldEnbable = YES;

三、监听方法

/** 监听方法 */
-(void)textchange:(NSNotification *)note{

    //最大字数
    static const NSInteger Max_Num_TextView = 5; //监听开始默认YES self.isNameTextFieldEnbable = YES; //当前输入语言状态 UITextInputMode *mode = (UITextInputMode *)[UITextInputMode activeInputModes][0]; NSString *lang = mode.primaryLanguage; //汉字 if ([lang isEqualToString:@"zh-Hans"]) { UITextRange *selectedRange = [self.textview markedTextRange]; //高亮状态的start位置 UITextPosition *position = [self.textview positionFromPosition:selectedRange.start offset:0]; //没有高亮状态,即每次截取要在文字确认之后 if (!position) { if (self.textview.text.length > Max_Num_TextView) { self.textview.text = [self.textview.text substringToIndex:Max_Num_TextView]; self.isNameTextFieldEnbable = NO; } } } //非汉字状态 else{ if (self.textview.text.length > Max_Num_TextView) { self.textview.text = [self.textview.text substringToIndex:Max_Num_TextView]; self.isNameTextFieldEnbable = NO; } } }

四、TextView的代理方法

//是否允许键盘输入
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ //返回删除键 if ([text isEqualToString:@""]) { return YES; }else{ return _isNameTextFieldEnbable; } }



转载于:https://www.cnblogs.com/qhlbk/p/5544386.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/diesuitai4777/article/details/102323176

智能推荐

SWT 的字体(Font)、颜色(Color)、图像(Image)和绘图_swt font-程序员宅基地

文章浏览阅读1.1w次。下面一个例子展示了Font、Color、Image 以及绘图的基本内容。 import org.eclipse.swt.SWT;import org.eclipse.swt.events.PaintEvent;import org.eclipse.swt.events.PaintListener;import org.eclipse.swt.graphics.Font;im_swt font

drop user 报错ora-00604-程序员宅基地

文章浏览阅读2次。问题描述: SQL> show user USER is "SYS" SQL> drop user efmis_zhongyang cascade; drop user efmis_zhongyang cascade * ERROR at line 1: ORA-00604: error occurred at recursive SQL level 1 ORA-38301: can...

使用docker为elasticsearch添加ik中文分词器_docker elasticsearch 添加中文分词器-程序员宅基地

文章浏览阅读418次。使用docker为elasticsearch添加ik中文分词器_docker elasticsearch 添加中文分词器

深度学习_目标检测_YOLOv5训练Pascal VOC格式的数据集教程_yolov5 pascal-程序员宅基地

文章浏览阅读7.9k次,点赞7次,收藏54次。1.搭建环境要求Python版本>=3.7,PyTorch版本>=1.5。并且安装需要的库源:pip install -U -r requirements.txt2.开始准备Pascal VOC格式的数据上图是Pascal VOC格式数据集的标准格式。为了应对YOLOv5的darknet格式 ,我们使用如下代码生成labels标签文件(为了狄简单期间,我们对train和test标签进行生成):import xml.etree.ElementTree as ETimport p_yolov5 pascal

java 模拟刷点击量_csdn博客刷点击率(java代码)-程序员宅基地

文章浏览阅读1k次。importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.HttpStatus;importorg.apache.commons.h..._java 点击率

CMake编译Nginx源码_cmake 编译 nginx-程序员宅基地

文章浏览阅读2k次。背景最近打算学习nginx源码,但使用clion IDE查看不支持跳转。因为源码是使用autotool维护的,而clion需要CMake管理项目。着手编译nginx源码。环境os : ubuntu 18.04nginx: nginx-1.16.1cmake: 3.10.2clion: 2019.2原生编译解压源码包后,执行configure命令。./configure --p..._cmake 编译 nginx

随便推点

linux编辑复制多行命令,linux下文本编辑器vim的使用,复制-粘贴-替换-行号-撤销-多文件操作(2)_linux复制几行-程序员宅基地

文章浏览阅读885次,点赞19次,收藏16次。智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**在命令模式下输入“/查找对象”,即可从上往下查找,按n查找(next);在命令模式下输入“?查找对象”,即可从上往下查找,按n查找(next);_linux复制几行

R语言语法基础(一)_的r、一>7-程序员宅基地

文章浏览阅读7.4k次,点赞10次,收藏82次。R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。_的r、一>7

T168_111\core\N32903文件:第33~40个文件(2个Lib解密了)-程序员宅基地

文章浏览阅读81次。【代码】T168_111\core\N32903文件:第33~40个文件(2个Lib解密了)

基于注意力机制结合卷积神经网络-门控循环单元CNN-GRU-attention实现回归区间预测附Matlab代码_基于注意力机制的 gru 电价预测模型-程序员宅基地

文章浏览阅读39次。随着人工智能技术的不断发展,机器学习在各个领域的应用越来越广泛。回归区间预测是其中的一个重要任务,它可以用于预测连续值的范围,例如房价的区间或者股票价格的范围。在本文中,我们将介绍一种基于注意力机制结合卷积神经网络和门控循环单元的回归区间预测算法。首先,让我们来了解一下卷积神经网络(CNN)和门控循环单元(GRU)的基本原理。CNN是一种深度学习模型,它能够有效地处理具有网格结构的数据,例如图像。它通过卷积层和池化层来提取图像的特征,并通过全连接层进行分类或回归。_基于注意力机制的 gru 电价预测模型

如何利用机器人流程自动化实现业务转型_java流程机器人-程序员宅基地

文章浏览阅读135次。【RPA之家视频教程5】UiPath联接数据表活动-Uipath数据表-3-Uipath数据表活动 https://www.bilibili.com/video/BV1Za4y1j78v【RPA之家视频教程2】UiPath Webhooks演示 https://www.bilibili.com/video/BV1N54y1y7WR【RPA之家视频教程3】UiPath Webhooks演示_3 https://www.bilibili.com/video/BV1yK411P7QQ【RP..._java流程机器人

Linux内核移植之一:内核源码结构与Makefile分析_、如果linux内核版本号写法形如version.patchlevel.sublevel-build-程序员宅基地

文章浏览阅读809次。内容来自 韦东山《嵌入式Linux应用开发完全手册》一、内核介绍1、版本及其特点 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如下面几行它们构成了Linux的版本号:2.6.22.6。VERSION=2PATCHLEVEL=6SUBLEVEL =22EXTRAVERSION=.6 其中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4、2.5、2.6等,稳定版本的主版本号用偶数表示(比如2.4、..._、如果linux内核版本号写法形如version.patchlevel.sublevel-build.desc,则一

推荐文章

热门文章

相关标签