2014-12-21 74 views
2

目標:使用QuickType(Predictive)創建俄語lang的自定義鍵盤,它應該看起來像本機一樣(由於名聲不大,我無法發佈圖像,但我想很明白, )有一些變化:自己的算法來顯示單詞;用戶可以從3個以上的選項中選擇在iOS 8中使用原生預測的自定義鍵盤

我發現它不能通過標準功能來完成(比如「將某些屬性設置爲像quickType爲YES」),但可能存在一些其他方法來實現它?例如創建自定義視圖或不行,所以問題是:

我可以通過自定義視圖(高度大於「215 +/- px」)或有其他方式嗎?那麼蘋果會採取嗎?

UPD重要的是自定義看起來完全像本機一樣。

回答

0

您可以將您的自定義單詞補全視圖添加爲鍵盤的子視圖(與添加按鍵的按鈕相同)。當然,您需要增加鍵盤的高度才能爲完成視圖提供額外的高度。

Apple Documentation

可以調整使用自動佈局自定義鍵盤的主要視線的高度。默認情況下,根據屏幕大小和設備方向,定製鍵盤的尺寸與系統鍵盤相匹配。自定義鍵盤的寬度始終由系統設置爲等於當前屏幕寬度。要調整自定義鍵盤的高度,請更改其主視圖的高度限制。

您還可以在該頁面上找到代碼示例。根據你描述的內容,我認爲蘋果公司會拒絕的原因。

0

更改高度是可能的。看看這個問題iOS 8 Custom Keyboard: Changing the Height

您可以提供自定義視圖來顯示預測。 App Store中的'Touchpal'可能對您有所幫助。 'Touchpal'英文鍵盤與系統鍵盤一樣具有一些QuickType功能。

0

您的自定義鍵盤外觀和預測機制(QuickType就像)都是您的責任。沒有辦法只是複製或啓用某些東西。你應該從頭開始編寫另一個完全相同的鍵盤,並使用另一種QuickType類算法。 iOS8只是爲您提供可以更改高度的空白視圖。

0

看看在UILexicon對象,尤其是在UITextChecker

UITextChecker *checker = [[UITextChecker alloc] init]; 
NSRange checkRange = NSMakeRange(0, text.length); 
NSRange misspelledRange = [checker rangeOfMisspelledWordInString:text 
                  range:checkRange 
                 startingAt:checkRange.location 
                  wrap:NO 
                 language:@"en_US"]; 
NSArray *arrayCorrected = [checker guessesForWordRange:misspelledRange 
               inString:text 
               language:@"en_US"]; 
return [arrayCorrected objectAtIndex:0]; 

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextChecker_Class/index.html

+0

UITextChecker不會與俄羅斯正常工作和UILexicon用於從iPhone獲取用戶的數據(如地址,名字等) –