微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/iOS/336867.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐