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];

}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【概括介绍】 金山打字通是一款学习打字软件具有英文打字、拼音打字、五笔打字、打字游戏等功能,让您简单快乐的学习打字。 【基本介绍】   《金山打字通 2008》!它是金山公司推出的两款教育系列软件之一,是一款功能齐全、数据丰富、界面友好的、集打字练习和测试于一体的打字软件。   金山打字主要由英文打字、拼音打字、五笔打字、打字游戏等六部分组成。所有练习用词汇和文章都分专业和通用两种,用户可根据需要进行选择。英文打字由键位记忆到文章练习逐步让用户盲打并提高打字速度。五笔打字分86和98两个版本的编码,从字根、简码到多字词组逐层逐级的练习。拼音打字特别加入异形难辨字练习、连音词练习,方言模糊音纠正练习,以及HSK(汉语水平考试)字词的练习。这些练习给初学汉语或者汉语拼音水平不高的用户提供了极大的方便,同时也非常适合中小学生及外国留学生的汉语教学工作。 【软件功能】 基本功能 打字练习方式多样 为用户提供了英文打字、拼音打字、五笔打字三项基本的练习。 测试方式合理 包括学前测试、速度测试两大方面。在速度测试方面又根据用户需求,分为屏幕对照、书本对照、同声录入三种方式。 打字教程更专业 专业的打字教程做成形象生动的Flash形式,使您能以最快的速度学会打字。 打字游戏设计思维巧妙 为您提供了五款游戏,让您在妙趣横生的游戏中无形地提高您对键盘的熟悉程度和文章盲打的水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zwarwolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值