我有UITextField
,我想使用正则表达式。我想用
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
UITextFieldDelegate
的方法。
在我的XIB文件中,委托被设置为文件所有者。在.h文件中,协议1已设置
UIViewController<UITextFieldDelegate>
textFieldDidEndEditing
和textFieldDidBeginEditing
工作正常。
shouldChangeTextInRange
没有被调用,但为什么?
最好的问候
答案 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