2

viewDidLoad 时如何让键盘自动出现?我也不想使用 UITextField 使键盘出现。

4

3 回答 3

1

将 UITextField 添加到您的视图并调用它[myTextfield becomeFirstResponder];然后将其设置为隐藏myTextfield.hidden = true- 这样用户将永远不会看到文本字段。

于 2012-11-05T21:43:45.563 回答
1

你可以这样做:

  • 子类化 UIView(它是 UIResponder 的子类)

  • 使您的 UIView 子类符合协议 UIKeyInput。为此,在类声明中添加 < UIKeyInput > 并将此代码添加到 .m 文件

添加此代码:

-(BOOL)hasText;
{
    return YES;
}
-(void)insertText:(NSString *)text;
{
    // what to do when a text is inserted
}

-(void)deleteBackward;
{
    // what to do when delete is pressed
}

-(BOOL)canBecomeFirstResponder
{
    // return yes if your control can become first responder and show the keyboard
    return YES;
}
  • 创建此自定义视图的新实例并将其添加为当前窗口的子视图(否则将不起作用)

然后,要显示键盘,您只需调用 [myView becomeFirstResponder]; 刚试过,效果很好。

编辑:没有尝试过,但它应该不仅可以继承 uiview,还可以继承所有类型的 UIView 子类并且可以添加到窗口层次结构中的对象,只是它必须符合 UIKeyInput 协议

于 2012-11-06T15:22:42.583 回答
0

我知道没有 UITextField 的唯一方法是创建和添加(私有,未记录UIKeyBoard类的实例。你可以在这里找到一个实现,在showKeyboard:animated:方法中。

于 2012-11-05T21:43:18.897 回答