【发布时间】:2015-07-31 19:08:05
【问题描述】:
我的 ViewController 中有以下观察者。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
这个视图控制器也符合 UITextFieldDelegate 和 UITextViewDelegate 并实现了textFieldDidBeginEditing 和textViewDidBeginEditing。
现在,奇怪的部分来了。
如果你点击UITextField,调用顺序是textFieldDidBeginEditing AND THEN keyboardWillChangeFrame:。
如果您点击UITextView,调用顺序为keyboardWillChangeFrame AND THEN 'textViewDidBeginEditing'。
没有人认为这有问题吗?不应该先调用text_____DidBeginEditing,不管是Field还是View。这是为什么呢?
这会导致奇怪的动画问题。我需要它以一种或另一种方式保持一致。
【问题讨论】:
-
我能问你为什么使用 UIKeyboardWillChangeFrameNotification 吗?我刚做了。
-
@Everton 为视图设置动画以适应键盘的增长。我的 UITextView 或多或少占据了 90% 的视图。当键盘出现在屏幕上时,我将 UITextView 的高度设置为高于键盘的高度。当键盘消失时,我将其动画化。
标签: ios cocoa-touch uitextfield uitextview