将粘贴的数字粘贴到UITextView时如何更改复制的数字?

时间:2018-05-13 05:27:58

标签: ios objective-c uitextview copy-paste

我正在尝试从iPhone Notes 应用中将数字复制到UITextView中。

screenshot: number copied from Notes app

但是在我的应用程序的textview中复制并粘贴后,它添加了一个前缀(tel :)。 喜欢:电话:2234356778876

我不想在我的UITextView中显示tel:只是数字。我在textview委托中添加了checkChangeTextInRange方法。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if(textView == destination) // destination is the textview
    {
        if([text hasPrefix:@"tel:"])
        {
            text = [text stringByReplacingOccurrencesOfString:@"tel:" withString:@""];
        }
    }
    return YES;
}

但它没有改变任何东西。 textview显示完整的电话:22xxxxxxxx号码。在这种情况下应该改变什么?

注意:如果我从通讯录 Safari 中复制号码,则只会粘贴号码。但是tel:是为 Notes app添加的。

感谢。

1 个答案:

答案 0 :(得分:0)

"tel:"参数存在于该委托函数的上下文中,变异它不会反映UITextView中的结果。

您需要做的是检查字符串是否包含NO,然后手动更新if([text hasPrefix:@"tel:"]) { NSString *cleanText = [text stringByReplacingOccurrencesOfString:@"tel:" withString:@""]; textView.text = [textView.text stringByReplacingCharactersInRange:range withString:cleanText]; return NO; } 内容并从该函数返回JSON.parse

JSON.stringify(blob, undefined, 2)