textfield限制字数(兼容中文,复制,删除)iOS

这个方法经多次查找,亲自测试可用于中文输入检测,以及复制,删除等都对限制字数没有影响。

[textname addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

- (void)textFieldDidChange:(UITextField *)textField

{

if (textField == self.clockName) {

NSString *toBeString = textField.text;

NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式

if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写

UITextRange *selectedRange = [textField markedTextRange];

//获取高亮部分

UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];

// 没有高亮选择的字,则对已输入的文字进行字数统计和限制

if (!position) {

if (toBeString.length > CLOCKNAME_MAX_LENGTH) {

textField.text = [toBeString substringToIndex:CLOCKNAME_MAX_LENGTH];

}

}

// 有高亮选择的字符串,则暂不对文字进行统计和限制

else{

}

}

// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况

else{

if (toBeString.length > CLOCKNAME_MAX_LENGTH) {

textField.text = [toBeString substringToIndex:CLOCKNAME_MAX_LENGTH];

}

}

}

}

时间: 2024-10-30 01:04:57

textfield限制字数(兼容中文,复制,删除)iOS的相关文章

Clipboard 自动复制功能,ios复制失败,换方案 user-select: text ;长按复制 (ios 兼容,长按复制)

Clipboard 自动复制功能,嵌套app内跳转的页面,ios 自动复制失败(该ios机子,微信,浏览器打开复制没有问题) 暂时换方案    user-select: text ;长按复制 (ios 兼容低版本,长按复制) 最好的 方案是让 app 给出原生复制的 方法.直接调用 可 自动复制 <div class="item-detail"> <div class="line" style>  <!-- user-select: t

cordova无法删除ios插件的解决办法

错误如下: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff; min-height: 13.0px } span.s1 { } Unin

使用脚本删除ios工程中未使用图片

最近在读唐巧大神的<iOS开发进阶>,学到了一个大招:使用脚本删除ios中未使用的图片(纸书上有点小问题,参考github上的issue:使用脚本删除ios中未使用图片). issue中得到的建议是:将代码保存在一个.sh文件中,在xcode里面执行shell脚本文件.看到这里,头瞬间大了,大学学的shell都还给linux老师了....还有xcode中怎么执行脚本啊??? google一下,找到mac下创建.sh文件的小白方法:教你在mac上面创建可执行脚本文件.当然还有XCode中执行脚本

centos vi 复制 删除 剪切 黏贴命令

复制: yy:复制当前行 nyy:复制的行数(含当前行).假设复制3行,鼠标定位在第1行的位置,输入3yy即复制了1~3行的内容 复制多行另外的方式:(起始行,结束行  co 黏贴位置)的方式,例如复制3~5行的内容黏贴到9行后面,命令模式下输入 :3,5 co 9 删除: dd:删除当前行 ndd:删除多行,同复制 删除多行另外的方式:(起始行,结束行  de)的方式,例如删除3~5行,命令模式下输入 :3,5 de 剪切: 剪切原理和删除一样,都是用d,dd,ndd,其实linux删除后的内

如何删除IOS软件更新包

iOS软件更新包是什么? 每次通过iTunes 更新iPhone, iPad 或者 iPod软件的时候,下载的ios更新文件就会保存在mac中.当更新完成之后,这些更新文件就不在需要了,删除它们将释放大量的mac空间.如果你还需要这些文件,可以重新下载. 如何手动删除iOS软件更新包? 1.启动Finder,在菜单栏中点击“前往”-“前往文件夹”. 2.如果是iTunes文件,可以在~/资源库/iTunes中找到要删除的软件更新. 3.同样的,iPad固件文件将被保存在 ~/资源库/iPad中:

iOS学习 - 18.TextField 自定义菜单事件,复制和微信分享

菜单事件包括,剪切.拷贝.全选.分享...,此 demo 只有 copy.share 1.定义 field 继承与 UITextField - (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if (action == @selector(copy:)) { return YES; } return NO; } - (void)copy:(id)sender { [self resignFirstResponder]; //持

vi-vim :删除、撤销、恢复删除、复制删除

删除 1 删除命令 vi命令 操作键 x 删除当前光标处的字符 X 删除光标左边的字符 D 删除从当前光标到本行末尾的字符 J 删除两行之间的换行符 (亦可用于合并两行) dmove 删除从当前光标到move所给位置的字符 dd 删除当前行 ex命令 :lined 删除指定行 :line,lined 删除指定范围内的行 2 常用的删除组合命令 说明:操作符命令+位移命令 1      nx                     删除多个字符(n为删除的字符个数) 2      dw      

Linux如何移动复制删除带特殊文字符前缀(-,--,;)的的文件

在linux系统中,许多元字符,如分号(semicolon),空格(space),反斜线(backslash),美元符号(dollar sigh),问号(question mark),星号(asterisk) 通常被解释为命令,-(dashes)或者--被解释为命令的选项,通过以下的方式就可以复制.移动.删除带-或者--的文件,: 1.首先,创建文件,创建前缀带-或--文件不能直接使用touch命令,因为会被解释为命令的选项,所以得用追加的形式创建: [[email protected] tmp

ZeroClipboard实现多个浏览器兼容的复制文本到剪贴板的功能

本人在项目中使用的js版本.为了方便大家下载.直接粘贴代码给大家看.版本是1.2.0 /*! * ZeroClipboard * The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface. * Copyright (c) 2013 Jon Rohan, James M. Gr