【发布时间】:2014-11-21 20:08:59
【问题描述】:
我正在展示来自另一个 UIViewController 的 UIViewController。呈现的视图控制器是这样实现 viewDidAppear 的:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.addressTextView becomeFirstResponder];
}
但是,如果我像这样实现 viewDidAppear:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.addressTextView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0f];
}
演示动画没有明显的延迟。
我的主要问题是,有没有人知道是否有另一种方法可以使文本字段成为第一响应者,而不会延迟我目前的动画?我不认为第二种解决方案是干净的。我依靠一些执行选择器如何工作的实现细节来获得我想要的功能。我宁愿不要。
我也很好奇为什么第一种方法会有这样的延迟,以及第一种方法与第二种方法“在幕后”有何不同。
编辑:可能值得注意的是,当前视图控制器动画中的延迟仅在第一次出现时发生。
【问题讨论】:
标签: ios objective-c iphone animation