粘贴到UITextField时,将空格剥离



如果我复制abc 123,并将其粘贴到我的UITextField中,我希望输入abc123。我尝试从UITextFieldDelegate使用shouldChangeCharactersInRange:replacementString,但更改replacementString参数并不会更改字段中实际显示的内容。

如果字符串包含空格,我可以返回NO,但我想做的是在输入点去掉它们。似乎没有任何其他委托方法可以执行此操作。

我该如何实现这一点,最好不要将UITextField子类化并覆盖paste:

您可以观察UIPasteBoard的变化,并在粘贴前更改字符串:

[[NSNotificationCenter defaultCenter]
   addObserver:self
   selector:@selector(pasteboardChangedNotification:)

一旦收到通知,就可以获取字符串并替换空格。

NSString *newString = [[[UIPasteboard generalPasteboard] string] stringByReplacingOccuranciesOfString:@" " withSting:@""]

您需要从replacementString中去掉空格,然后将UITextField的text属性设置为修改后的replacementString并返回NO(因为您已经手动完成了)。

我可以通过重写textField:shouldChangeCharactersInRange:replacementString:在方法内部对textField进行更改(将文本设置为格式化版本)并返回NO来实现此行为。

最新更新