删除算法相当的繁琐和复杂,且容易出错。
mCur的用法:
mCur是一个二维数组,第一维是节,第二维是每次按键时的mComposing。
1. 在initSeg()中,如果SegNo==0,清空mCur。
2. 在handleDiv()中,每增加一个新的节,mCur增加一个空的一维数组。
3. 在handleBackspace()中,如果删到了部首本身,就从mCur[SegNo][0]中取出首笔画。
4. 、、,在删到分节符时,mCur.removeLast()。
5. 在getmatch()-B12中,处理删除键,从mCur中取出上一次显示的mComposing,mCur[SegNo][c-1]
6. 在getmatch()-E中,处理删除键,如果之前键入了部首,就精确计算上一次记录的mComposing的下标,
因为部首是多笔画的,不能直接从部首个数(按键次数)确定上一次是第几个。设置一个计数器似乎更好解决。
7. 在getmatch()中,判断mCur是否为空,否则初始化,附加一个空的一维数组。
8. 、、,判断当前节的记录数是否小于按键次数,如果是则附加当前的mComposing。
否则(可能是应对删除键?),在前一个位置上记录当前的mComposing。
cur的用法:
cur是一个字符串,用来在getmath()的每一个分支,保存当前的 mComposing,在下一个按键不是删除键的时候,getmatch()的分支D中,mComposing = cur+curstr