从CITect中取出UITextView

时间:2013-08-01 20:50:32

标签: ios uitextview cgrect

这必须听起来真的很奇怪,但我想拿出键盘的CGRect并将其从UITextView中取出。这是一张图片来帮助:

Image

我基本上希望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;
 }

这种情况发生了:

imag2

2 个答案:

答案 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的宽度和高度,以便在您的环境中有意义。