我有UITextField,我在 textFieldDidEndEditing:上附加了格式代码。这样可以正常工作,但是当我第一次使用文本值( someTextField.text = @“...”)加载文本字段时,格式化不会发生。当然,我可以在那里添加另一个格式化程序,但它似乎有点重复。
有没有办法对UITextField进行所有更改,程序化或用户来源,是否自动应用了格式?
答案 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.