这必须听起来真的很奇怪,但我想拿出键盘的CGRect并将其从UITextView中取出。这是一张图片来帮助:
我基本上希望UITextView变小,所以当我添加文本时它会向下滚动。如果您需要更多信息,请问我。
编辑:当我使用此代码时:
- (void)keyboardWasShown:(NSNotification*)notification {
NSDictionary* info = [notification userInfo];
kbSIZE = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
CGRect newTextViewFrame = self.notesTextView.frame;
newTextViewFrame.size.height -= kbSIZE.size.height;
self.notesTextView.frame = newTextViewFrame;
}
这种情况发生了:
答案 0 :(得分:1)
根本不奇怪。当您打开键盘时,tableviews经常会发生同样的事情。这段代码应该有所帮助。
CGRect newTextViewFrame = textView.frame;
newTextFrame.size.height -= keyboardSize.frame.size.height;
textView.frame = newScrollFrame;
答案 1 :(得分:1)
这根本不奇怪:)
您可以通过注册UIKeyboardWillShowNotification
的观察者来做到这一点(在同一过程中注册UIKeyboardWillHideNotification
也是一个好主意。)
当调用已注册的选择器时,notification参数将包含UIKeyboardFrameEndUserInfoKey
字典userInfo
值内的键盘大小:
[[[user userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue] .size
您现在需要做的就是将UITextView的框架设置为所需的尺寸。
警告:您获得的CGRect 未考虑设备方向。这意味着,如果设备实际上处于横向模式,您需要切换CGRect的宽度和高度,以便在您的环境中有意义。