Mac輸入法從零開始_第1頁
Mac輸入法從零開始_第2頁
Mac輸入法從零開始_第3頁
Mac輸入法從零開始_第4頁
Mac輸入法從零開始_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Mac輸入法從零開始淺談基于Mac的輸入法框架童洋1我自己畢業(yè)于北京理工大學(xué)08年進(jìn)入MSRA09年進(jìn)入騰訊QQ輸入法QQ詞典Mac初學(xué)者第一次在同學(xué)家使用iMac找不到中文輸入法2我們的團(tuán)隊(duì)騰訊研究院人機(jī)交互中心3產(chǎn)品理念簡(jiǎn)潔、實(shí)用、優(yōu)雅用戶第一:切實(shí)為用戶創(chuàng)造價(jià)值不要讓中文輸入成為用戶使用Mac的障礙提供Windows輸入法流暢的輸入體驗(yàn)滿足Mac用戶個(gè)性化的需求建立良好的口碑不斷提升輸入法的準(zhǔn)確率和輸入速度服務(wù)于高端用戶精品化的交互視覺體驗(yàn)功能:少即是多蘋果的產(chǎn)品理念:封閉的高速路關(guān)注細(xì)節(jié)4視覺設(shè)計(jì)兩種方案的PK更Mac還是更Windows5交互設(shè)計(jì)更Mac的交互體驗(yàn)兼容Windows輸

2、入法的使用習(xí)慣6發(fā)布引擎移植 1周框架搭建 1周界面繪制 1周7用戶反饋8用戶反饋9開發(fā)進(jìn)度互聯(lián)網(wǎng)速度小步快跑2011年6月3日beta1支持整句輸入簡(jiǎn)約美觀的Mac風(fēng)格皮膚超大詞庫2011年6月8日beta2單擊Shift鍵切換中英文解決刪除錯(cuò)誤的bug超大字符集Esc鍵清除候選欄2011年6月24日1.0支持模糊音支持簡(jiǎn)繁轉(zhuǎn)換支持網(wǎng)址模式候選詞數(shù)目可設(shè)置候選欄大小可設(shè)置提供卸載工具狀態(tài)切換時(shí)提示消息2011年7月7日1.1支持五筆支持拼音五筆混輸提供五筆設(shè)置全新皮膚風(fēng)格用戶反饋功能開發(fā)10Mac輸入法SDKInput Method Kit FrameworkSDK框架IMKServerIM

3、KInputController1InputSession1輸入法引擎IMKInputController2InputSession2IMKInputController3InputSession3按鍵候選按鍵IMKServerInput候選IMKTextInput綁定11plist文件描述輸入法信息Bundle名字圖標(biāo)文件輸入法名稱輸入法模式(拼音、五筆)IMKController名字12IMKServerInput獲得按鍵的三種非正式方式按鍵綁定(sample)inputText獲得字符按鍵didCommandBySelector處理特定的操作,例如insertNewline換行,dele

4、teBackward刪除文本數(shù)據(jù)string獲得字符按鍵keyCode獲得按鍵的Unicode編碼,例如刪除鍵的keyCode=51flags獲得modifier flags的變化,例如Shift,Ctrl的按下獲得所有按鍵消息通過NSEvent獲得所有按鍵消息KeyDownKeyUpModifierChanged13重要的接口函數(shù)(BOOL) handleEvent:(NSEvent*)event client:(id) sender接收按鍵消息引擎處理return YES交還系統(tǒng)處理return NO(void) activateServer:(id) sender輸入法呼出(void)

5、deactivateServer:(id) sender輸入法切出輸入法失去應(yīng)用程序焦點(diǎn)14重要的接口函數(shù)(void) insertText:(id) string replacementRange:(NSRange)replacementRange提交候選詞上屏replacementRange=NSNotFound插入光標(biāo)位置(void) setMarkedText:(id) string selectionRange:(NSRange)selectionRange replacementRange:(NSRange)repleacementRange設(shè)置inline拼音串selection

6、Range為拼音串長度15輸入法引擎handleEvent獲得按鍵留交給引擎處理引擎不處理,handleEvent return NO交回系統(tǒng)處理例如Vim中清除輸入串后,再按Esc退出insert模式輸入法引擎跨平臺(tái)-硬鍵盤模式16Adapter模塊17內(nèi)核模塊18皮膚繪制NSWindoworderFront:nil候選詞窗口顯示在最前面setLevel:NSScreenSaverWindowLevel避免響應(yīng)F3NSView解析XML文件,傳入根節(jié)點(diǎn)NSXMLELemnt根據(jù)XML結(jié)構(gòu),建立SubView結(jié)構(gòu)在drawRect中完成NSView的繪制NSWindow 調(diào)用setConten

7、tView關(guān)聯(lián)NSViewNSView通過delegate將鼠標(biāo)點(diǎn)擊消息傳到InputControllerInputControllerNSViewNSViewNSViewNSWindow19Shift鍵的截獲InputMethodServerDelegateClass=QQInputController使handleEvent生效Shift鍵單獨(dú)按下Shift鍵+E20密碼框的問題密碼框的識(shí)別,自動(dòng)轉(zhuǎn)換為英文模式IsSecureEventInputEnable21Inline拼音串沒有inline拼音串時(shí),輸入法截獲刪除鍵后,firefox仍會(huì)截獲輸入拼音串后需調(diào)用setMarkedText輸入法切出時(shí)清除inline拼音串在word中存在有訪問沖突22覆蓋安裝新版本的增加了輸入模式,例如五筆安裝包拷貝新版本QQInput.app至LibraryInput Methods覆蓋后需無法出現(xiàn)新輸入模式 安裝腳本設(shè)置/Library/Preferences下com.apple.HIToolbox.plist中的可用輸入源23跨越Mac與Windows的障礙切換輸入法時(shí)上屏(void) dealloc去掉inline拼音串,在組詞框中編輯拼音串系統(tǒng)暫不支持讀取windows下的皮膚文件讀取OLE復(fù)合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論