[英]UILexicon in Objective-C
你如何在Objective-C中使用UILexicon? 我發現Apple提供的文檔非常無用。
它有什么作用? 它會返回字典或正確的單詞拼寫嗎? 或者我提供像“hellllo”這樣的單詞,並將其與正確的拼寫“Hello”匹配並將其作為字符串返回?
任何幫助,將不勝感激。
requestSupplementaryLexiconWithCompletion:
這是我的錯誤報告,但顯然我會有錯誤,因為我完全猜測如何使用該函數,不知道塊語句內部的內容(因為文檔(當時)沒有說!(Beta 4 docs) ))哈哈哈!
我從來沒有使用過這個功能,但是對“UILexicon”的快速網絡搜索使我獲得了Apple的文檔; 閱讀和跟隨鏈接從那里填寫圖片非常快。
App Extension編程指南快速解釋了詞典的用途:
每個自定義鍵盤(獨立於其
RequestsOpenAccess
鍵的值)都可以通過UILexicon
類訪問基本的自動UILexicon
詞典。 利用此類以及您自己設計的詞典,在用戶輸入文本時提供建議和自動更正。
單擊UILexicon
鏈接將我帶到該類的參考文檔,這解釋了它是Apple提供的術語對的只讀列表。 它的每個條目都是一個UILexiconEntry
對象 - 該類的文檔說它提供了userInput
(用戶輸入的內容,例如“ipad”)和documentText
(替代它的內容,例如“iPad”)。 由於這些類是只讀的,因此它們可能不是您提供自己的自動更正對的方式 - 正如文檔中所述,它們用於補充您實現的任何自動更正系統。
在這一點上,我甚至不必查看requestSupplementaryLexiconWithCompletion:
的文檔requestSupplementaryLexiconWithCompletion:
了解如何使用它:只是聲明告訴我:
UIInputViewController
上的一個方法,我必須創建一個自定義鍵盤。 在那個子類的某個地方,我應該把它稱為self
。 void
,所以我不能通過將requestSupplementaryLexiconWithCompletion
調用的結果賦給變量來獲得一個詞典。 UILexicon
對象作為參數傳遞給該塊。 所以,我猜測如果我正在編寫自定義鍵盤,我會在早期調用此方法(也許在viewDidLoad
)並UILexicon
它提供的UILexicon
,以便稍后在用戶輸入時可以引用它。 像這樣的東西:
@property UILexicon *lexicon;
- (void)viewDidLoad {
[super viewDidLoad];
[self requestSupplementaryLexiconWithCompletion:^(UILexicon *lexicon){
self.lexicon = lexicon;
}];
}
因為目前還不清楚requestSupplementaryLexiconWithCompletion
需要多長時間才能完成,所以在我使用self.lexicon
任何地方我應該檢查它是否nil
。
回到App Extension編程指南 ,它列出了“iOS用戶期望的鍵盤功能”下的“自動更正和建議”,然后說:
您可以決定是否實施此類功能; 沒有專門的API用於剛剛列出的任何功能
所以聽起來像autocorrection是你必須自己做的事情,你自己的UI是你的UIInputViewController
子類提供的視圖的一部分。 編程指南中的API自定義鍵盤快速入門部分似乎暗示了你是如何做到的:使用documentContextBeforeInput
來查看用戶最近輸入的內容, deleteBackward
去除它,以及insertText:
插入更正。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.