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];
}];

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...