如何保证一个textfield输入最长的文字
NSString *lang = [self.inputTextField.textInputMode primaryLanguage]; // 键盘输入模式
if ([lang isEqualToString:@"zh-Hans"])
{ // 简体中文输入,包括简体拼音,健体五笔,简体手写
UITextRange *selectedRange = [self.inputTextField markedTextRange]; //获取高亮部分
//获取已经确认的文字的长度
NSInteger confirmedlength = [self.inputTextField offsetFromPosition:self.inputTextField.beginningOfDocument
toPosition:selectedRange.start];
if ((nil == selectedRange) || selectedRange.isEmpty)
{
confirmedlength = self.inputTextField.text.length;
}
//截断超过长度的部分
BOOL bCuttedOff = NO;
//处理一个字符长度超过多个的情况
if (confirmedlength >= 15)
{
NSRange rangeRange = [self.inputTextField.text rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, 15)];
if (self.inputTextField.text.length > rangeRange.length)
{
bCuttedOff = YES;
self.inputTextField.text = [self.inputTextField.text substringSafeWithRange:rangeRange];
}
}
if (YES == bCuttedOff)
{
//太长了
}
return;
}
else
{
BOOL bCuttedOff = NO;
if (self.inputTextField.text.length > 15)
{
//处理一个字符长度超过多个的情况
NSRange rangeRange = [self.inputTextField.text rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, 15)];
if (self.inputTextField.text.length > rangeRange.length)
{
bCuttedOff = YES;
self.inputTextField.text = [self.inputTextField.text substringSafeWithRange:rangeRange];
}
}
if (YES == bCuttedOff)
{
//太长了
}
return ;
}
如何保证一个textfield输入最长的文字的更多相关文章
- 求字符串的最长回文字串 O(n)
昨天参加了某公司的校园招聘的笔试题,做得惨不忍睹,其中就有这么一道算法设计题:求一个字符串的最长回文字串.我在ACM校队选拔赛上遇到过这道题,当时用的后缀数组AC的,但是模板忘了没写出代码来. 回头我 ...
- 汇编语言从键盘输入一个字符串(串长不大于80)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z)
(1)从键盘输入一个字符串(串长不大于80). (2)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z). (3)输出原字符串且令非字母字符闪烁显示. (4)找出字符串中ASCI ...
- iOS 限制TextField输入长度(标准)
iOS 限制TextField输入长度(标准) 网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入 ...
- iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)
项目中各个地方都会用到TextField,textField的输入也会有各种需求,各种限制,每次用到的时候要重写一遍这些限制,导致各种垃圾代码,各种重复,有一天,我终于看不下去了,于是把textFie ...
- leetcode 求一个字符串的最长回文子串
最长回文子串问题:给定一个字符串,求它的最长回文子串长度.如果一个字符串正着读和反着读是一样的,那它就是回文串. 给定一个字符串,求它最长的回文子串长度,例如输入字符串'35534321',它的最 ...
- iOS textField输入金额的限制,小数点前9位,后面两位
iOS textField输入金额的限制,小数点前9位,后面两位,如果不加小数点,最大位数是9位,加上小数点,最大位数是12位,超出最大位数可删除 - (BOOL)textField:(UITextF ...
- threadlocal精髓是为每一个线程保证一个共享对象,保证一个,保证是同一个
threadlocal精髓是为每一个线程保证一个共享对象,保证一个,保证同一个线程中是同一个共享对象. 如果是静态变量是共享的话,那必须同步,否则尽管有副本,还是会出错,故C错
- 【Linux】设定一个能输入中文的英文环境!
引子:centos startx 进入桌面后使用中文输入法 这个解决方法太蠢了,而且只适用于centos等red系系统... 在此提供一个更加通用的方法 => 只要设置好系统的locale坏境变 ...
- 使用OLAMISDK实现一个语音输入数字进行24点计算的iOS程序
前言 在目前的软件应用中,输入方式还是以文字输入方式为主,但是语音输入的方式目前应用的越来越广泛.这是一个利用 Olami SDK 编写的一个24点iOS程序,是通过语音进行输入. Olami SDK ...
随机推荐
- Codeforces 1154F (DP)
题意:有一个人去买铲子,他需要买正好k把.每把铲子有个标价,并且每把铲子最多只能被买一次.有m种优惠方案,每个优惠方案xi, yi是指如果这次恰好购买了xi把铲子,那么这次购买的铲子中最便宜的yi把将 ...
- Chrome谷歌浏览器屏蔽百度搜索右侧广告推荐方法
先上图百度广告,其实屏蔽广告很简单 主要分成以下三步: 下载Adblock Plus插件 安装Adblock Plus插件 开启屏蔽 一.下载Adblock Plus插件(官网离线版) 二.安装Adb ...
- Linux 下启动两个tomcat
Linux 下启动两个tomcat 闲来无事学习nginx,想要配置个load balance.可是先决条件是:得有两个web容器.两个电脑是不用想了.只能想办法在一个机器上启动两个tomcat.原以 ...
- Linux版本信息如何查询
1.输入"uname -a ",可显示电脑以及操作系统的相关信息.2.输入"cat /proc/version",说明正在运行的内核版本.3.输入"c ...
- 30-Transformation(HDU4578)-区间线段树(复杂)
http://acm.hdu.edu.cn/showproblem.php?pid=4578 Transformation Time Limit: 15000/8000 MS (Java/Others ...
- 各种异常 及异常类和Object类 Math类
Day05 异常 Object类 equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较.Object类中的equals方法内部使用的就是==比较运算符. 2. 描述人这个 ...
- T-sql GroupBy语句常见问题处理
1.问题描述 现在有一张course表(含课程编号和名称)和一张sc表(含学生学号,选修课程的编号以及考试成绩),如下:现在想要查询所有课程编号.对应的课程名称以及选修该课程的所有学生的平均成绩.一开 ...
- 面向对象的JavaScript-003
1. // Since JavaScript doesn't exactly have sub-class objects, prototype is a useful workaround to m ...
- [C++] c Struct VS c++ Struct
c Struct c语言生命变量要加上struct c语言结构体内部不能有函数 C语言结构体没有共有,私有和继承
- Idea2017常用功能
1,添加java工程 2,导出可执行jar 3,本地代码提交svn新分支 4,乱码问题解决 一次解决所有问题,只需做配置文件的修改即可 解决方案: 在 IntelliJ IDEA 201 ...