多年来,我的应用程序将UITextView子类化,并覆盖了paste方法以对粘贴的文本进行一些清理:
- (void)paste:(id)sender {
[super paste:sender];
NSString *pastedText = self.text;
// do cleanup here
self.text = pastedText;
}
但是我刚刚意识到,现在运行该命令时,self.text尚未使用粘贴的文本进行更新。它仍然显示原始文本,如果该字段为空,则显示为空字符串,因此清除无效。
我不知道什么时候改变了。一位用户刚刚报告并说问题是在几周前开始的,所以最新的iOS更新11.4.1可能吗?但是我之前听到过零星的报道,因此无法复制。现在确实确实在11.4.1中发生。
我添加了以下解决方法:
- (void)paste:(id)sender {
[super paste:sender];
[self performSelector:@selector(pasteCleanup) withObject:nil afterDelay:0.1];
}
- (void)pasteCleanup {
NSString *pastedText = self.text;
// do cleanup here
self.text = pastedText;
}
有更好的方法吗?