如何使键盘显示没有UITextField

时间:2012-11-05 21:16:58

标签: ios ios5

如何在viewDidLoad时自动显示键盘?我也不想使用UITextField来显示键盘。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以通过以下方式完成:

  • 继承UIView(它是UIResponder的子类)

  • 使您的UIView Subclas符合协议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协议

答案 2 :(得分:0)

我知道没有UITextField的唯一方法是创建并添加(私有,未记录的UIKeyBoard类的实例。您可以在showKeyboard:animated:方法中找到实施here