3

我有一个可编辑的文本视图来输入一些描述。当我单击 textview 时,会出现键盘。我的问题是当我尝试通过键盘输入一些文本时,它没有出现在文本视图中。请帮助我提前谢谢。

4

3 回答 3

5

你不应该在...中返回 NO

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

否则它将不允许您添加文本。

编辑:来自TextView参考:

textView:shouldChangeTextInRange:replacementText:询问代理是否应该在文本视图中替换指定的文本。

(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)范围替换Text:(NSString *)text

参数:

textView:包含更改的文本视图。

range:当前选择范围。如果范围的长度为 0,则范围反映当前插入点。如果用户按下 Delete 键,则范围的长度为 1,并且一个空字符串对象替换该单个字符。

text:要插入的文本。

返回值:如果旧文本应该被新文本替换,则为 YES;如果更换操作应中止,则为 NO。

于 2012-07-05T05:34:06.723 回答
2

您必须在此委托方法中返回 YES,否则您作为委托的字段中将不允许出现任何文本,如下所示:

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

    if([text isEqualToString:@"\n"]) {
        [m_CtrlTxtViewDescription resignFirstResponder];
        [self setViewMovedUp:NO];
        return NO;
    }    
    return YES;
}

shouldChangeTextInRange...,顾名思义,是文本视图在通过键盘添加文本时调用的方法。代表被问及是否应添加文本。

于 2012-07-05T05:35:35.257 回答
0

是的。它也发生在我身上。但是不用担心,我们无法通过我的电脑键盘在文本中输入文本,但是当您声明时。

self.yourtextview.userInteractionenabled = YES;

self.yourtextview.editable = Yes;

然后您可以使用设备或模拟器键盘输入文本。它将完美运行。

于 2014-09-16T07:53:20.607 回答