ios – 麻烦拍摄成为一些用户不显示键盘的第一响应

我有一个TextView,应该按下按钮显示,让用户通过键盘输入文本.
- (IBAction) changeName {

    changeNameBtn.hidden = YES;
    backBtn.hidden = YES;

    usernameLabel.hidden = NO;
    inputTextField.hidden = NO;
    [inputTextField becomeFirstResponder]; // to show keyboard
}

这对我们大多数人来说很好.

但是键盘在一些地理位置偏远的地方没有显示给我的一些测试人员.怎么麻烦拍这个?什么可能是我们的设备的不同行为的原因?它对我和其他人都很好.我们都使用相同的设备(iPod,iOS 4.1 – 5.1).

我尝试的第一件事情没有起作用:

我猜到inputTextField在某种程度上不会及时变得可见,之后才会被启动,因此我添加了setNeedsDisplay,因为我认为这将强制更新.

[inputTextField setNeedsDisplay];
[inputTextField becomeFirstResponder];

我尝试的第二件事情没有起作用:

if([inputTextField canBecomeFirstResponder]){
    [inputTextField becomeFirstResponder];
}

我尝试的第三件事是解决办法,要求不幸的用户按字段:

- (IBAction) inputTextFieldTouch {
    [inputTextField becomeFirstResponder];
}

此解决方法有效,但必须有更好的方法.请告诉我我做错了什么! :)如何处理这样的问题,而不能自己复制?

解决方法

当您尝试使其成为第一反应者时,textview尚未完成绘制.

您可以尝试动画化外观,并在完成块中设置第一个响应者.

[UIView animateWithDuration:0.0 animations:^{
   [view addSubview:textView];
} completion:^(BOOL finished){
   [textView becomeFirstResponder];
}];

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...