2014-10-05 309 views
8

我已經看到了,這個問題已經被問了幾次,但似乎沒有人有答案自動更正。我正在嘗試在自定義鍵盤上創建自動更正功能,但我完全喪失瞭如何操作的信息。蘋果公司給出了一些文件,但不是很詳細。我知道它與UILexicon數據有關,但我不確定該如何處理它以及如何使用它來更正用戶輸入的文本字符串。使用UILexicon以實現iOS 8的鍵盤擴展

任何幫助將不勝感激。

我迄今發現:

let controller = UIInputViewController() 

    controller.requestSupplementaryLexiconWithCompletion({ 
     lexicon in 

     println(lexicon.description) 

    }) 

但是,這是據我已經得到了。不知道從這裏做什麼。

+2

感謝您重新提出我發佈的類似問題 - 希望有人回答! – agf119105 2014-10-06 16:18:17

回答

9

你問一個很棘手的問題。簡而言之,在iOS8上沒有內置的自動更正功能;還有的API產生的訪問iOS上,使系統做的事情一樣顯示紅色的「可能出現的錯誤」強調效果,或到系統自動更正行爲的其他方面,如就地建議對話框(上iOS 7,或者如果您沒有建議欄可見)或「正確」的藍色背景(在iOS 8上)。

事情你不能做的:

dotted red line

就地錯誤指示

in-place suggestion

就地自動更正對話框

will correct

建議欄自動更正指標

可以要做的就是寫自己的自動更正引擎,從無到有,既包括自己的文字處理和分析,您自己的用戶界面習慣用法。這一切都必須完成,因爲您無法在鍵盤邊界之外進行繪製,並且您無法在屏幕上修改任何其他內容。一些第三方鍵盤的做到這一點,如minuumswiftkey(聲明:我對minuum工作),但它是工作的非偶然量。如果你有興趣在此玩耍,一個良好的開端可能是建於UITextChecker類,雖然自動校正最終從拼寫檢查不同的問題。

UILexicon是,一旦你已經實現的東西纔有用;所有它真正爲您提供的是一個單詞列表,您可以使用它來補充您使用的任何字典,以及實現用戶可能在系統設置中添加的任何文本快捷方式。它本身不足以構建自動糾錯系統。

編: How to Write a Spelling Corrector是彼得·諾維格一個偉大的小文章/教程,你可能會覺得有趣,而且我會建議,即使你不試圖寫自動更正。

+2

當我最初提出這個問題時,我每天都會回頭查看答案並最終放棄。我最終創建了一個非常原始的自動更正,方法是在鍵盤上輸入而不看它,然後將所有拼寫錯誤的單詞作爲Plist中的關鍵字添加爲正確的單詞作爲值。然後輸入每個單詞,它會檢查它是否有一對。它根本沒有效率,並且需要永久添加新的單詞,但它很有效!您添加的文章完全是我一直在尋找的東西。非常感謝你的回答。我的鍵盤是Dvorak佈局,如果你在乎的話! – SomeGuy 2015-04-27 11:07:54