iOS下86版五笔输入法练习程序(作为备忘,最基本功能的演示demo,版本:0.99版)
以下是一个前期的基本功能思路仅作为备忘(这段代码只是前期一个demo,只是针对字母编码的一个业务逻辑,只是一个大体的思路,后期的改良基本上推翻了前期所有的代码,但是前期的代码中的思想仍然得到保留),正式版已经完成,由于经过多次改良后代码过多这里就不放出来了,正式版的代码经过改良后打英文表示五笔编码,打其它字符或者数字时直接上屏,在输入编码后再选数字表示选择提示字上屏,与真实pc端输入法达到一样的效果。
- (void)tfWrite {
NSMutableString *tmp = [NSMutableStringstring];
NSString *strLow = [self.tf.textlowercaseString];
tmp = [[NSMutableString alloc] initWithFormat:strLow,nil];
unichar cc;
if (tmp.length >=1) {
cc = [tmp characterAtIndex:tmp.length-1];
}
NSLog(@"cc:%c",cc);
if ((cc >= '1' && cc <='5') || (cc >='a' && cc <='z') || cc ==' ') {
if (1 ==self.tf.text.length && cc >='1' && cc <= '5') {
self.tf.text =@"";
}
if (self.tf.text.length >=2 && (cc >='1' && cc <='5')) {
int indexTmp = [[NSNumbernumberWithUnsignedChar:cc]intValue]-'0';
NSLog(@"indexTmp:%d",indexTmp);
self.tf.text =@"";
if (self.wordTmp ==nil) {
self.wordLabel.text = [self.wordArray[indexTmp-1]copy];
}else{
self.wordLabel.text = [self.wordTmpstringByAppendingString:[self.wordArray[indexTmp-1]copy]];
}
self.wordTmp = [self.wordLabel.textcopy];
}
if (4 ==self.tf.text.length && (cc >='a' && cc <= 'z')) {
self.states =YES;
}
if (5 ==self.tf.text.length && (cc >='a' && cc <= 'z')) {
self.tf.text =@"";
if (self.wordArray.count >0) {
if (self.wordTmp ==nil) {
self.wordLabel.text = [self.wordArray[0]copy];
}else{
self.wordLabel.text = [self.wordTmpstringByAppendingString:[self.wordArray[0]copy]];
}
}
self.wordTmp = [self.wordLabel.textcopy];
}
if (cc == ' ') {
if (self.tf.text.length ==1) {
self.tf.text =@"";
return;
}
self.tf.text =@"";
if (self.wordTmp ==nil) {
self.wordLabel.text = [self.wordArray[0]copy];
}else{
self.wordLabel.text = [self.wordTmpstringByAppendingString:[self.wordArray[0]copy]];
}
self.wordTmp = [self.wordLabel.textcopy];
}
}else {
self.tf.text =@"";
}
if (0 !=self.wordArray.count &&0 !=self.keyArray.count) {
[self.wordArrayremoveAllObjects];
[self.keyArrayremoveAllObjects];
}
for (int i =0; i <self.allKey.count; i++) {
if ([self.allKey[i]hasPrefix:[self.tf.textlowercaseString]]) {
[self.wordArrayaddObject:self.allWord[i]];
[self.keyArrayaddObject:self.allKey[i]];
//暂时只提示5个
if (5 ==self.wordArray.count) {
break;
}
}
}
if (self.states) {
if (1 ==self.wordArray.count) {
self.tf.text =@"";
if (self.wordTmp ==nil) {
self.wordLabel.text = [self.wordArray[0]copy];
}else{
self.wordLabel.text = [self.wordTmpstringByAppendingString:[self.wordArray[0]copy]];
}
self.wordTmp = [self.wordLabel.textcopy];
self.states =NO;
}
}
[self.tableViewreloadData];
}
iOS下86版五笔输入法练习程序(作为备忘,最基本功能的演示demo,版本:0.99版)相关推荐
- 基于Linux系统部署新世纪版五笔输入法
基于Linux系统部署新世纪版五笔输入法 出于工作需要,突然生出学习五笔的想法.五笔有三个版本:86/98/新世纪. 按照新手上路,有新学新的想法,选择了新世纪版. 然后发现了个坑:公司电脑是Linu ...
- Linux技巧之Ubuntu11.04下安装极点五笔输入法
转自:http://os.51cto.com/art/201108/285239.htm Ubuntu11.04是第14个Ubuntu系统发行版本.Ubuntu11.04将支持多点触摸技术,改进用户界 ...
- Ubuntu 下安装极点五笔输入法
Ubuntu 下安装极点五笔输入法 刚刚安装好了 Ubuntu 12.04,但是没有五笔的日子实在不好过,WINDOWS下用习惯了极点五笔,本以为极点的作者不出Linux版的,结果在网上一搜, ...
- Ubuntu 12.04下安装极点五笔输入法
Ubuntu 12.04下安装极点五笔输入法 刚刚安装好了 Ubuntu 12.04,但是没有五笔的日子实在不好过,WINDOWS下用习惯了极点五笔,本以为极点的作者不出Linux版的,结果在 ...
- ubuntu18.04.2LTS下如何用五笔输入法 --Linux
ubuntu18.04.2LTS下自带五笔输入法,不用去单独下载 1.在设置中找到区域和语言 2.点击加号添加输入源 3.选择,选择「汉语」 4.选择「极点五笔」 开始你的五笔输入法之旅-- 友情链接 ...
- [Linux]Ubuntu下chrome中五笔输入法不能通过shift切换中英文
**背景:**鉴于自己前后鼻音和平翘舌不分的缘故,我也是恨下心来使用五笔输入法,在使用的过程中还是有很多问题.其中一个就是在chrome中,五笔输入法不能通过shift(包括其他中英文切换按键)中英文 ...
- 在gvim下内置五笔输入法
我记得原来用过vimim这个vim内置的输入法,还有vim_wubi,我今天搜索了一下找到下载的地址: https://code.google.com/p/vimim-wubi/ 把上面的两个文件下载 ...
- ubuntu 下安装98五笔输入法
断断续续的用ubuntu好几年了,每次安装98五笔输入法都要网上搜一下,这次花了好长时间才找到方法,在此记下来备忘! 打开 应用程序-附件-终端 输入: wget http://ibus.goo ...
- ubuntu下安装fcitx五笔输入法
学习转载于http://demo.netfoucs.com/pipisorry/article/details/39476961 安装fcitx输入法 sudo add-apt-repository ...
- Ubuntu下安装极点五笔输入法
sudo wget http://www.xiit.cn/wp-content/uploads/2011/03/vissible-ibus.tar.gz tar -zxvf vissible-ibus ...
最新文章
- Java项目:前台预定+后台管理酒店管理系统(java+SSM+jsp+mysql+maven)
- JAVA[Algorithm]--戴克斯特拉
- Matlab错误:Y must be a vector or a character array
- spark运行时加载hive,hdfs配置文件
- ASP.NET Core amp; Docker 实战经验分享
- 动手学PaddlePaddle(1):线性回归
- 利用ApiPost接口管理工具校验/测试API返回结果是否符合预期
- 大数据之-Hadoop3.x_MapReduce_WordCount编写_Reducer---大数据之hadoop3.x工作笔记0090
- java 获取路径_java 获取当前类的路径
- CAM350 12.1版本安装
- 【计算机组成原理】中央处理器(三)—— 数据通路
- idea maven tomcat 热部署
- 解决 Win11 打不开 Windows 安全中心 (Windows Defender)
- 企业级无线无缝漫游之思创漫游3.0 Plus ,三层漫游
- html link 怎么设置密码,tplink路由器手机怎么设置密码?
- 使用PyTorch实现手写文字识别的学习
- 信息流广告投放的技巧
- 线索二叉树(前中后序线索化/遍历/画线索)
- QGIS操作教程——图说中国人口
- 一台云服务器绕过企业微信域名验证本地开发
热门文章
- 基于优化LSTM 模型的股票预测
- 抽奖活动前端源码-可录入抽奖人名单
- Speedpdf——无需下载软件,就可以免费轻松搞定CAJ转word
- 谷歌插件.crx文件无法安装
- weedfs php,Weed-FS之Volume数据迁移
- Zabbix:Lack of free swap space on Zabbix server 解决
- vue + element 与 vue element admin 中 tab标签视图 页拖拽(拖动) sortablejs 插件案例
- Qt5之图形视图框架(一)
- 微信小程序使用Socket
- 单片机C51继电器控制C语言,51单片机对继电器的控制