UITextView变为FirstResponder无法正常工作

时间:2011-12-29 15:20:59

标签: iphone objective-c ios uitextview

我有一个UIViewUITextViewUITextField作为子视图。我希望键盘在textFieldShouldReturn通话时自动显示。

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    [textView becomeFirstResponder];
    return YES;
}

但是这不起作用并且出于某种原因,它在文本视图中的下一行显示带有光标的键盘。我尝试在textview中设置文本nil,但它会自动调用textDidChange方法并且光标在新行上移动而没有任何文本。

enter image description here

这种技术对于UITextField也能正常工作,而且它适用于iOS 5.0但是如何在iOS 4.3中解决这个问题。如果您有任何其他选择,请告诉我。

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:31)

iOS中存在一个已知的错误,即在同一个runloop中辞职并成为第一响应者。请尝试以下

[textField resignFirstResponder];
[textView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0];