相关疑难解决方法(0)

更改框架时,UITextView光标位于框架下方

我有一个UIViewCOntroller包含一个UITextView.当键盘出现时我按如下方式调整大小:

#pragma mark - Responding to keyboard events

- (void)keyboardDidShow:(NSNotification *)notification
{
    NSDictionary* info = [notification userInfo];
    CGRect keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGRect newTextViewFrame = self.textView.frame;
    newTextViewFrame.size.height -= keyboardSize.size.height + 70;
    self.textView.frame = newTextViewFrame;
    self.textView.backgroundColor = [UIColor yellowColor];
}

- (void)keyboardWillHide:(NSNotification *)notification
{
    NSDictionary* info = [notification userInfo];
    CGRect keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGRect newTextViewFrame = self.textView.frame;
    newTextViewFrame.size.height += keyboardSize.size.height - 70;
    self.textView.frame = newTextViewFrame;
}
Run Code Online (Sandbox Code Playgroud)

textView似乎重新调整到合适的大小,但是当用户键入光标时,最终会在textView框架的"外部".见下图:

在此输入图像描述

黄色区域是UITextView框架(我不知道R键旁边的蓝线是什么).我发现这很有线.如果这有任何区别,我正在使用iOS7.

任何想法或提示?

更新

我有一个UITextView子类,使用以下方法绘制水平线(如果这有任何区别):

- …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c uitextview uikeyboard ios

16
推荐指数
2
解决办法
1万
查看次数

当iOS 7显示键盘时,如何重新调整UITextView的大小

我有一个包含全屏的视图控制器UITextView.当键盘显示时,我想调整文本视图的大小,使其不会隐藏在键盘下面.

对于iOS,这是一种相当标准的方法,如本问题所述:

如何在键盘出现时在iOS上调整UITextView的大小?

但是,对于iOS 7,如果用户点击屏幕下半部分的文本视图,则当文本视图调整大小时,光标将保持在屏幕外.如果用户点击进入,则文本视图仅滚动以将光标置于视图中.

objective-c ios7

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

objective-c ×2

cocoa-touch ×1

ios ×1

ios7 ×1

uikeyboard ×1

uitextview ×1