UITextFieldDelegate" shouldChangeTextInRange"不叫

时间:2015-10-22 07:42:40

标签: ios objective-c

我有UITextField,我想使用正则表达式。我想用

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

来自UITextFieldDelegate

方法。

在我的XIB文件中,委托被设置为文件所有者。在.h文件中,协议1已设置 UIViewController<UITextFieldDelegate>

textFieldDidEndEditingtextFieldDidBeginEditing工作正常。

shouldChangeTextInRange没有被调用,但为什么?

最好的问候

2 个答案:

答案 0 :(得分:4)

这是因为您正在UITextView而不是UITextField上实施委托。你应该实现:

- (BOOL)textField:(UITextField *)iTextField shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString

答案 1 :(得分:0)

您实施UITextViewDelegate方法并尝试委托UITextField。试试吧;

的OBJ-C;

- (BOOL)textField:(UITextField *)iTextField shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString

夫特;

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool