当键盘出现时,我需要在UIScrollView
内移动UI元素,以便用户可以看到它。
为了实现这种行为,我调用了以下方法:
- (void)registerForKeyboardNotifications {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification
object:nil];
}
- (void)deregisterFromKeyboardNotifications {
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardDidHideNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];
}
在viewWillAppear:
和viewWillDisappear:
方法中。
但是,在我的情况下,在同一个视图控制器上有两个文本视图,但我需要移动UI元素,只有其中一个。我该怎么做?我可以以某种方式只为一个对象调用addObserver
或检查哪个对象叫它吗?
提前致谢。
答案 0 :(得分:1)
您可以询问文本视图是否具有键盘焦点:
if ([myTextView1 isFirstResponder]) {
// Do this
} else if ([myTextView2 isFirstResponder]) {
// Do that.
}
答案 1 :(得分:1)
将您的发件人与通知对象或用户信息一起传递
- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;