设置或编辑文本时的UITextField数字格式化程序

时间:2014-05-20 17:12:31

标签: ios objective-c

我有UITextField,我在 textFieldDidEndEditing:上附加了格式代码。这样可以正常工作,但是当我第一次使用文本值( someTextField.text = @“...”)加载文本字段时,格式化不会发生。当然,我可以在那里添加另一个格式化程序,但它似乎有点重复。

有没有办法对UITextField进行所有更改,程序化或用户来源,是否自动应用了格式?

2 个答案:

答案 0 :(得分:0)

只需从两个地方运行相同的方法......

- (void)setTextFieldWithText:(NSString *)text {
    //do formatting here...
    self.textField.text = formattedText;
}

答案 1 :(得分:0)

您可以添加UITextFieldDidChangeNotification或只添加一个观察者(使用addObserver方法)来观察对文本字段的更改。选择适合您的方法。它们都确实削减了重复代码。 KVO - 与您的问题相关的概念。

如果您查看以下链接,您可能会有所了解 UITextFieldDidChangeNotification - How do i notify changes in UITextField?

addObserver方法 - detecting the change of content of UITextField when the change is not made by the keyboard

  Note: Although the classes of the UIKit framework generally do not support KVO, you can still implement it in the custom objects of your application, including custom views.