我有UITextView
。我将myTextView
的委托设置为self
,当我进行正常编辑时,此方法调用正常:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSLog(@"Called");
}
在我的应用中,我调用了我的代码:[myTextView insertText:@"Hello World"];
。当我这样做时,我需要在插入文本后调用textView:shouldChangeTextInRange:replacementText:
。我该怎么做?
答案 0 :(得分:4)
明确地调用它。在编辑之前调用它,只有在返回YES
时才执行编辑。要明确地调用它,您需要知道所选范围(使用selectedTextRange
获取所选范围),就是这样。您已经有要添加的文本和文本视图。
答案 1 :(得分:2)
感谢您的回答,@ Wain!
这是有效的:
- (void)insertText
{
NSString *stringToAdd = @"Hello World";
NSString *replacementText = [myTextView.text stringByAppendingString:stringToAdd];
[napkinTextView insertText:stringToAdd];
[self textView:myTextView shouldChangeTextInRange:NSMakeRange(0, stringToAdd.length) replacementText:replacementText];
}