2012-07-19 93 views
2

我想知道如何獲取uitextview的鍵盤類型。 我能夠通過使用textfield.keyboardtype獲得uitextfield的鍵盤類型,但它似乎不適用於uitextview。 請幫助我解決這個問題。UITextView的鍵盤類型

在此先感謝。

+0

什麼通過調用textview.keyboardType返回? – 2012-07-19 13:08:13

回答

8

試試這個

UITextView *txvw = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 24, 20)]; 
txvw.keyboardType =UIKeyboardTypeURL; 

和備用的鍵盤類型爲

UIKeyboardTypeDefault,    // Default type for the current input method. 
UIKeyboardTypeASCIICapable,   // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active 
UIKeyboardTypeNumbersAndPunctuation, // Numbers and assorted punctuation. 
UIKeyboardTypeURL,     // A type optimized for URL entry (shows ./.com prominently). 
UIKeyboardTypeNumberPad,    // A number pad (0-9). Suitable for PIN entry. 
UIKeyboardTypePhonePad,    // A phone pad (1-9, *, 0, #, with letters under the numbers). 
UIKeyboardTypeNamePhonePad,   // A type optimized for entering a person's name or phone number. 
UIKeyboardTypeEmailAddress,   // A type optimized for multiple email address entry (shows space @ . prominently). 
0

如果你只是讀的UITextView類的引用,它在鍵盤上一整節,並在那就是這樣的文字:

「鍵盤本身的外觀可以使用UITextInputTraits協議提供的屬性進行自定義,文本視圖對象實現此協議並支持它定義的屬性。您可以使用這些屬性來指定要顯示的鍵盤類型(ASCII,數字,URL,電子郵件和其他)。您還可以配置鍵盤的基本文本輸入行爲,例如它是否支持自動大寫和校正文本。「

所以這意味着UITextView採用UITextInputTraits協議,這意味着它響應每個必需的消息。要覆蓋的方法,你就需要繼承的UITextView,然後添加方法子類返回不同的鍵盤類型等

有關屬性,你可以設置屬性爲其他響應者建議。

1

您可以像使用UITextField一樣獲取UITextView的keyboardType。

UITextView* textView = [[UITextView alloc] initWithFrame:CGRectMake(0,0,320,30)]; 
[self.view addSubview:textView]; 
UIKeyboardType type = textView.keyboardType; 
[textView release];