我有一个UITextView覆盖了故事板中的整个视图控制器设置。顶部布局指南,底部布局指南,前导边距和尾随边距存在约束。
我已注册键盘通知以调整内容插件,如下所示:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardAppeared:)
name:UIKeyboardDidShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDisappeared:)
name:UIKeyboardDidHideNotification
object:nil];
keyboardAppeared的实现:
- (void)keyboardAppeared:(NSNotification *)notification {
NSDictionary *notificationUserInfo = [notification userInfo];
CGRect keyboardRect = [[notificationUserInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
self.textView.contentInsets = UIEdgeInsetsMake(0, 0, keyboardRect.heignt, 0);
self.textView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, keyboardRect.height, 0);
}
keyboardDisappeared的实现:
- (void)keyboardDisappeared:(NSNotification *) {
self.textView.contentInsets = UIEdgeInsetsZero;
self.textView.scrollIndicatorInsets = UIEdgeInsetsZero;
}
这里遇到的麻烦是当键盘出现时,如果textView文本较少,textView中会有不需要的滚动。当文本大小超过textView高度时,不会显示不需要的滚动。
请帮忙!
答案 0 :(得分:2)
解决了它。这个问题非常罕见,但是如果有人被困,这就是解决方案。
我曾经在viewDidLoad中设置textView的文本,如下所示:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.textView setScrollEnabled:YES];
[self.textView setText:#-some text-#];
[self.textView setScrollEnabled:NO];
}
我关闭了滚动,以便文本视图不会在设置文本时滚动到底部。这造成了额外滚动的问题。 (我不确定为什么)
我使用此解决方案来解决问题:https://stackoverflow.com/a/3287419