2013-08-01 13 views
0

的这必须听起来真的怪异,但我想利用键盘的的CGRect并把它拿出来的UITextView的。这里是一个图片的帮助:采取的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

+0

不仅不奇怪,但首选的行为。当应用程序不这样做时,它会让我很生气,你必须关闭键盘才能看到视图的最后一点。 (通常是表格视图) – bshirley

回答

1

不太奇怪的。当您打开键盘时,桌面浏览经常会发生同样的情况。这一点的代码应该有所帮助。

CGRect newTextViewFrame = textView.frame; 
newTextFrame.size.height -= keyboardSize.frame.size.height; 
textView.frame = newScrollFrame; 
+0

对不起,我说scrollView和textView。我从那以后编辑了答案来反映这一点。 – AdamG

+0

请参阅我的编辑。 –

+1

加回你坐在键盘上的视图的高度,并且应该解决问题。 – AdamG

1

这是不奇怪的所有:)

您可以通过注册作为观察员参加了UIKeyboardWillShowNotification做到这一点(这将是一个好主意,也注册在同一进程中UIKeyboardWillHideNotification)。

当注册选择将被调用,通知参数将包含userInfo dictionnary的UIKeyboardFrameEndUserInfoKey值内的键盘的尺寸:

[[[通知USERINFO] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue] .size

所有你现在需要做的是你的UITextView的框架设置为你想要的大小。

被警告:您得到的CGRect 未考虑设备方向。这意味着,如果设备实际上处于横向模式,则需要切换CGRect的宽度和高度,以使其在您的上下文中有意义。

+0

能否请你看看我的编辑 –

+0

请问您的UITextField一路去到视图的底部显示的键盘过吗?如果你使用'UIKeyboardFrameEndUserInfoKey'而不是'UIKeyboardFrameBeginUserInfoKey'呢?此外,您可以按Command + S自动截取模拟器的截图。 –

+0

是的,它到底部,它是一个UITextView。 –