粘贴到UITextField时删除空格?

时间:2015-03-20 13:59:16

标签: ios uitextfield clipboard uitextfielddelegate

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

如果字符串包含空格,我可以返回NO,但我想要做的是在入口处实际删除它们。似乎没有任何其他委托方法来执行此操作。

我如何实现这一目标,最好不要继承UITextField并覆盖paste:

3 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我可以实现这个行为覆盖textField:shouldChangeCharactersInRange:replacementString:在方法内部对textField进行更改(将文本设置为格式化版本)并返回NO。