Ios 为什么应用自定义推送动画时键盘隐藏?
我有两个控制器,上面有UITextFields。我需要他们之间的自定义过渡与键盘显示,旁边的过渡 当我使用默认的推送动画时,一切都很好。但是如果我从Ios 为什么应用自定义推送动画时键盘隐藏?,ios,objective-c,custom-transition,Ios,Objective C,Custom Transition,我有两个控制器,上面有UITextFields。我需要他们之间的自定义过渡与键盘显示,旁边的过渡 当我使用默认的推送动画时,一切都很好。但是如果我从animationControllerForOperation返回我的转换类,键盘在转换之前隐藏,在转换之后显示 那么,有人能给我一个解决方案或解释,为什么键盘隐藏在自定义转换中?转换持续时间=0.4,我在viewDidLoad中设置了[textField becomeFirstResponder] 这里有一段视频:编辑 或者更简单的方法: 实现委托
animationControllerForOperation
返回我的转换类,键盘在转换之前隐藏,在转换之后显示
那么,有人能给我一个解决方案或解释,为什么键盘隐藏在自定义转换中?转换持续时间=0.4,我在viewDidLoad
中设置了[textField becomeFirstResponder]
这里有一段视频:编辑
或者更简单的方法:
实现委托方法-(BOOL)textField应取消编辑UITextField
的:(UITextField*)textField
,并返回NO,只要下一个VC尚未加载
也许您可以尝试覆盖
-(BOOL)canResignFirstResponder
方法的UITextField
,以返回NO
,只要新视图控制器的视图尚未加载。(例如,通过设置BOOL
属性,该属性在加载新视图控制器的视图时设置为YES
)。比如:
也许这可以防止键盘被隐藏(这似乎是在“推”操作中自动发生的)
希望这种方法有帮助。看看UIViewControllerTransitionCoordinator类
下面是类似问题的答案:您能显示您的过渡动画代码吗?还有,隐藏/显示真的那么糟糕吗?我自己几乎没有注意到,在你的例子中,我看不出有什么理由使用多个视图控制器来完成你想要完成的任务。这可以通过设置文本字段本身的动画来轻松处理,以更改内容,而无需将控制器移入移出。在更改控制器时保持键盘打开似乎让我感到困惑。
animateAlongsideTransition
仅在推送时执行。出于某种原因,当我从animationControllerForOperation
返回自己的UIViewControllerAnimatedTransitioning
时,键盘视图完全忽略了对其帧的更改。
- (BOOL) canResignFirstResponder {
return nextVCIsLoaded;
}