Mac输入法从零开始_第1页
Mac输入法从零开始_第2页
Mac输入法从零开始_第3页
Mac输入法从零开始_第4页
Mac输入法从零开始_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Mac输入法从零开始浅谈基于Mac的输入法框架童洋1我自己毕业于北京理工大学08年进入MSRA09年进入腾讯QQ输入法QQ词典Mac初学者第一次在同学家使用iMac找不到中文输入法2我们的团队腾讯研究院人机交互中心3产品理念简洁、实用、优雅用户第一:切实为用户创造价值不要让中文输入成为用户使用Mac的障碍提供Windows输入法流畅的输入体验满足Mac用户个性化的需求建立良好的口碑不断提升输入法的准确率和输入速度服务于高端用户精品化的交互视觉体验功能:少即是多苹果的产品理念:封闭的高速路关注细节4视觉设计两种方案的PK更Mac还是更Windows5交互设计更Mac的交互体验兼容Windows输

2、入法的使用习惯6发布引擎移植 1周框架搭建 1周界面绘制 1周7用户反馈8用户反馈9开发进度互联网速度小步快跑2011年6月3日beta1支持整句输入简约美观的Mac风格皮肤超大词库2011年6月8日beta2单击Shift键切换中英文解决删除错误的bug超大字符集Esc键清除候选栏2011年6月24日1.0支持模糊音支持简繁转换支持网址模式候选词数目可设置候选栏大小可设置提供卸载工具状态切换时提示消息2011年7月7日1.1支持五笔支持拼音五笔混输提供五笔设置全新皮肤风格用户反馈功能开发10Mac输入法SDKInput Method Kit FrameworkSDK框架IMKServerIM

3、KInputController1InputSession1输入法引擎IMKInputController2InputSession2IMKInputController3InputSession3按键候选按键IMKServerInput候选IMKTextInput绑定11plist文件描述输入法信息Bundle名字图标文件输入法名称输入法模式(拼音、五笔)IMKController名字12IMKServerInput获得按键的三种非正式方式按键绑定(sample)inputText获得字符按键didCommandBySelector处理特定的操作,例如insertNewline换行,dele

4、teBackward删除文本数据string获得字符按键keyCode获得按键的Unicode编码,例如删除键的keyCode=51flags获得modifier flags的变化,例如Shift,Ctrl的按下获得所有按键消息通过NSEvent获得所有按键消息KeyDownKeyUpModifierChanged13重要的接口函数(BOOL) handleEvent:(NSEvent*)event client:(id) sender接收按键消息引擎处理return YES交还系统处理return NO(void) activateServer:(id) sender输入法呼出(void)

5、deactivateServer:(id) sender输入法切出输入法失去应用程序焦点14重要的接口函数(void) insertText:(id) string replacementRange:(NSRange)replacementRange提交候选词上屏replacementRange=NSNotFound插入光标位置(void) setMarkedText:(id) string selectionRange:(NSRange)selectionRange replacementRange:(NSRange)repleacementRange设置inline拼音串selection

6、Range为拼音串长度15输入法引擎handleEvent获得按键留交给引擎处理引擎不处理,handleEvent return NO交回系统处理例如Vim中清除输入串后,再按Esc退出insert模式输入法引擎跨平台-硬键盘模式16Adapter模块17内核模块18皮肤绘制NSWindoworderFront:nil候选词窗口显示在最前面setLevel:NSScreenSaverWindowLevel避免响应F3NSView解析XML文件,传入根节点NSXMLELemnt根据XML结构,建立SubView结构在drawRect中完成NSView的绘制NSWindow 调用setConten

7、tView关联NSViewNSView通过delegate将鼠标点击消息传到InputControllerInputControllerNSViewNSViewNSViewNSWindow19Shift键的截获InputMethodServerDelegateClass=QQInputController使handleEvent生效Shift键单独按下Shift键+E20密码框的问题密码框的识别,自动转换为英文模式IsSecureEventInputEnable21Inline拼音串没有inline拼音串时,输入法截获删除键后,firefox仍会截获输入拼音串后需调用setMarkedText输入法切出时清除inline拼音串在word中存在有访问冲突22覆盖安装新版本的增加了输入模式,例如五笔安装包拷贝新版本QQInput.app至LibraryInput Methods覆盖后需无法出现新输入模式 安装脚本设置/Library/Preferences下com.apple.HIToolbox.plist中的可用输入源23跨越Mac与Windows的障碍切换输入法时上屏(void) dealloc去掉inline拼音串,在组词框中编辑拼音串系统暂不支持读取windows下的皮肤文件读取OLE复合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论