我有一个可编辑的文本视图来输入一些描述。当我单击 textview 时,会出现键盘。我的问题是当我尝试通过键盘输入一些文本时,它没有出现在文本视图中。请帮助我提前谢谢。
3 回答
你不应该在...中返回 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。
您必须在此委托方法中返回 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...
,顾名思义,是文本视图在通过键盘添加文本时调用的方法。代表被问及是否应添加文本。
是的。它也发生在我身上。但是不用担心,我们无法通过我的电脑键盘在文本中输入文本,但是当您声明时。
self.yourtextview.userInteractionenabled = YES;
self.yourtextview.editable = Yes;
然后您可以使用设备或模拟器键盘输入文本。它将完美运行。