3

我想知道如何获取 uitextview 的键盘类型。我能够通过使用 textfield.keyboardtype 获取 uitextfield 的键盘类型,但它似乎不适用于 uitextview。请帮助我解决这个问题。

提前致谢。

4

4 回答 4

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).
于 2012-07-19T13:11:58.563 回答
1

您可以像获取 UITextField 一样获取 UITextView 的键盘类型。

 UITextView* textView = [[UITextView alloc] initWithFrame:CGRectMake(0,0,320,30)];
 [self.view addSubview:textView];
 UIKeyboardType type = textView.keyboardType;
 [textView release];
于 2012-07-19T13:40:08.810 回答
0

如果您只是阅读 UITextView 类参考,它在键盘上有一个完整的部分,其中包含以下文本:

“可以使用 UITextInputTraits 协议提供的属性自定义键盘本身的外观。文本视图对象实现了此协议并支持它定义的属性。您可以使用这些属性来指定键盘的类型(ASCII、数字、URL、电子邮件等)来显示。您还可以配置键盘的基本文本输入行为,例如是否支持自动大写和更正文本。

所以这意味着 UITextView 采用 UITextInputTraits 协议,这意味着它响应每个所需的消息。要覆盖方法,您需要继承 UITextView,然后将方法添加到您的子类以返回不同的键盘类型等。

对于属性,您可以按照其他响应者的建议设置属性。

于 2012-07-19T13:13:37.677 回答
0

这个问题会帮助你:UITextView does not seem to implement reloadInputViews

于 2012-07-19T13:15:27.123 回答