iOS 限制输入框不能输入中文

开发中遇到这个问题,想着还是总结下,刚开始只是限制UITextField的键盘为

UIKeyboardTypeASCIICapable,可是当用户切换了中文键盘后依然没解决问题,于是我给输入框加了监听事件,获取输入框最新的输入内容,检测输入的内容中是否含有中文,如果有中文就替换成空字符串,具体实现如下:

infoView.userTF.keyboardType = UIKeyboardTypeASCIICapable;

//监听输入内容

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)

name:@"UITextFieldTextDidChangeNotification"

object:infoView.userTF];

-(void)textFiledEditChanged:(NSNotification*)notification

{

UITextField*textField = notification.object;

NSString*str = textField.text;

for (int i = 0; i<str.length; i++)

{

NSString*string = [str substringFromIndex:i];

NSString *regex = @"[\u4e00-\u9fa5]{0,}$"; // 中文

// 2、拼接谓词

NSPredicate *predicateRe1 = [NSPredicate predicateWithFormat:@"self matches %@", regex];

// 3、匹配字符串

BOOL resualt = [predicateRe1 evaluateWithObject:string];

if (resualt)

{

    //是中文替换为空字符串

str =  [str stringByReplacingOccurrencesOfString:[str substringFromIndex:i] withString:@""];

}

}

textField.text = str;

}

时间: 2024-08-07 08:13:49

iOS 限制输入框不能输入中文的相关文章

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

即时搜索:对于ios自带输入法输入中文时多次触发input事件的处理

实现移动端的即时搜索的最佳方案,一定是使用input propertychange事件了,但是在ios设备上遇到了问题,使用ios自带输入法输入汉字时,会出现多次触发input事件的情况,一开始可能由于搜索的关键字不得法,没有即时找到合适的方案,后来终于在网上找到了解决方案,现记录如下: 代码实现 /** * @param flag: 用于标记是否是非直接的文字输入 */ var flag = false; $('#id').on({ 'compositionstart': function()

[iOS]解决模拟器无法输入中文问题

第一步:设置schem 菜单项 -> Product-> Scheme -> Edit Scheme ->  然后在弹出的界面里 选择OPtion 项, 设置 Application Region 为 “中国” 第二步:设置模拟器为中文 点击Change to Simplified Chinese之后可能会重启模拟器,小黑窗了,不要害怕等会重新运行项目就可以了! 然后这次选择发现:

cocos2dx 3.2 解决输入框(TextField,TextFieldTTF) 中文乱码问题

近期开发cocos2dx 项目,做一个小游戏.(个人喜欢用最新版本号) 没系统学习就是问题多多,遇到了非常多问题,比方全部的opengl api都必须在主线程中调用, 这让我在多线程载入方面吃了不少亏,浪费了非常多时间. 这次遇到了输入框中输入中文出现乱码问题.搜索了非常多方法,都没找到.没办法.可是知道cocos2dx 2.x版本号没有这个问题,所以就仅仅有跟进代码了. 首先 找到2.x中找到WM_CHAR的派发消息: 在platform/win32/下的CCEGLView.cpp 中 LRE

JavaScript控制输入框中只能输入中文、数字和英文

1.问题背景 遇到这样一个问题:有一个输入框,要求只能输入中文.数字和英文(即过滤特殊字符串) 2.JS代码 function  checkUsername() { //正则表达式 var reg = new RegExp("^[a-zA-Z\d\u4E00-\u9FA5]+$"); //获取输入框中的值 var username = document.getElementById("username").value.trim(); //判断输入框中有内容 if(u

输入框文本输入限制问题以及中文输入法下字符阶段的处理

输入框文本字数限制问题以及中文输入法下字符截断处理 上次博文写过处理实时获取输入表单的值,传送门: 博文地址.这次又需要处理输入框文本字数限制问题,前期的步骤思想其实就是要先实时获取输入框的值然后得到长度. 使用onkeyup判断字符长度 可以参考我前面写的博文,地址如上.onkeyup确实是可以做到实时获取的效果,因此我就是使用键盘事件来达到效果.HTML代码: <div class="content"> <textarea name="complain&

在IOS 模拟器种输入中文

模拟器默认的配置种没有"小地球",只能输入英文.加入中文方法如下: 选择Settings--->General-->Keyboard-->International KeyBoards-->Add New Keyboard-->Chinese Simplified(PinYin) 即我们一般用的简体中文拼音输入法,配置好后,再输入文字时,点击弹出键盘上的"小地球"就可以输入中文了. 在IOS 模拟器种输入中文,布布扣,bubuko.co

IOS不触发文本框输入中文的keyup事件

问题描述:IOS不触发文本框输入中文的keyup事件,在输入中文之后需要点击回退按键,才会开始搜索.问题分析:IOS的输入法(不管是第三方还是自带)能检测到英文或者数字的keyup事件,检测不到中文的keyup事件.解决方案:把keyup事件换成[input]和[propertychange]事件. var eventName = (navigator.userAgent.indexOf("MSIE")!=-1) ? "propertychange" :"

react输入框输入中文bug

一般来说,react上我们都会用change事件去处理input的输入,但这样就导致一个问题,在输入中文的时候,我们还没输入完成就会触发change事件,这样显然不是理想状况. 那么,怎么解决这个问题呢?首先,你需要了解3个事件,compositionstart,compositionupdate和compositionend.什么意思呢? compositionstart 要开始输入中文 compositionupdate 插入新字符 compositionend 输入完成 下面是一段代码,可