我有一个UITextField,我想对它使用正则表达式。我想用
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
方法来自UITextFieldDelegate。
在我的XIB文件中,委托被设置为File的所有者。在.h-文件中,将协议设置为UIViewController<UITextFieldDelegate>。
textFieldDidEndEditing和textFieldDidBeginEditing工作正常。
shouldChangeTextInRange没有被调用,但是为什么?
诚挚的问候
发布于 2015-10-22 07:47:42
这是因为您是在UITextView而不是UITextField上实现委托。你应该实施:
- (BOOL)textField:(UITextField *)iTextField shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString发布于 2015-10-22 07:56:01
您实现了UITextViewDelegate方法,并尝试委托它UITextField。试试看;
Obj;
- (BOOL)textField:(UITextField *)iTextField shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString斯威夫特
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Boolhttps://stackoverflow.com/questions/33275712
复制相似问题