2010-10-23 76 views
3

將自定義輸入視圖加載到UITextField中,我可以任意更改UIKeyboardTypeAlphabet和UIKeyboardTypeNumberPad之間的標準鍵盤的鍵盤類型。請撥打電話:UITextView似乎沒有實現reloadInputViews

[editingField setKeyboardType:UIKeyboardTypeNumberPad]; 
[editingField reloadInputViews]; 

和中提琴!有你的數字鍵盤。

不改變這塊代碼,但只是編輯一個UITextView而不是UITextField,它不再有效。根據文檔,這些都符合UITextInput和UITextInputTraits協議。

值得一提的是,上面的代碼實際上確實是的工作,但只有在用戶離開textView後才重新選擇它。這幾乎就像reloadInputViews什麼都不做,然後textView在它變成FirstResponder時加載它的輸入視圖。

我已經嘗試了各種各樣的performSelector:等,並不能強制這個問題。有任何想法嗎?你如何讓UITextView服從reloadInputViews並動態改變它的inputView?

回答

4

您是否在調用之前將UITextView的inputView設置爲零?

[editingField setKeyboardType:UIKeyboardTypeNumberPad]; 
[editingField reloadInputViews]; 
+0

嗨,是的,我打電話給[editField setInputView:nil];在設置類型之前。 – SG1 2010-10-23 20:22:52

+2

tf.inputView = nil; [tf resignFirstResponder]; [tf setKeyboardType:UIKeyboardTypeEmailAddress]; [tf becomeFirstResponder]; [tf reloadInputViews];序列的作品。但是我會在空閒時間檢查這種奇怪的行爲,如果我找到任何東西,請告訴我們。 – 2010-10-23 20:41:21

+0

嗨,我以前試過,想着同樣的事情。做resignFirstResponder,然後迅速連續成爲FirstResponder似乎不工作:textView只是辭職並保持這種方式。 – SG1 2010-10-23 23:14:03