我想显示一个包含UITextField的视图,并且我会自动显示带有消息becomeFirstResponder的键盘。 使用iOS 7时,没有任何问题。 但自iOS8以来,它不起作用。 我这样的配置的观点:UITextField becomeFirstResponder块动画
- (void)showViewAddScore{
if(!self.viewPopOver){
//a l'initialisation de la vue, on design le contour
self.viewPopOver = [self.view viewWithTag:100];
self.viewPopOver.layer.cornerRadius = 8;
self.viewPopOver.layer.masksToBounds = YES;
self.viewPopOver.layer.borderWidth = 1;
self.viewPopOver.layer.borderColor = [[UIColor colorWithRed:8.0/255 green:65.0/255 blue:32.0/255 alpha:1] CGColor];
}
//deplacement de la vue
CGPoint point;
point.x = self.viewPopOver.frame.origin.x;
point.y = 300;
[self manageViewPopOver:self.viewPopOver withCGPoint:point];
[self.textfieldAddScore becomeFirstResponder];
}
和方法,以显示与动画的观点:
- (void)manageViewPopOver:(UIView *)view withCGPoint:(CGPoint)point {
[UIView animateWithDuration:0.3
delay:0.1
options:UIViewAnimationOptionCurveLinear
animations:^{
CGRect frame = view.frame;
frame.origin.y = point.y;
frame.origin.x = point.x;
view.frame = frame;
}
completion:nil];
}
的问题是:当 我第一次拨打方法showViewAddScore
,键盘显示,但不是视图。当我再次调用该方法时,视图正在显示。 当我删除线[self.textfieldAddScore becomeFirstResponder];
时,视图显示当我第一次调用该方法。所以,[self.textfieldAddScore becomeFirstResponder];
和动画有问题。 我试过在动画后移动这一行,但问题依然存在。
谢谢您的帮助。
您是以编程方式还是通过故事板添加viewPopOver? – Yan 2014-10-17 17:38:58
我试过你的代码,它在iOS 8中没有问题。你可以调试它,在point.y = 300上设置断点,看看self.viewPopOver是否第一次不是零,点的设置是否正确 – Yan 2014-10-17 18:09:10
嗨,是的,我在故事板中创建了viewPopOver,并显示它与动画。在调试模式下,视图不是零,即使是第一次。但它只出现在第二次点击。如果我删除行self.textfieldAddScore becomeFirstResponder],它会出现在第一次敲击。因此,从iOS8开始,呈现键盘和动画就存在一个真正的问题:-(我不知道如何解决这个问题。 – 2014-10-18 15:47:04