检测退格的明确答案是通过创建UITextField的子类并覆盖deleteBackward
属性。iOS:使用UITextField子类检测空的UITextField中的退格
我创建了一个子类的UITextField子类,但我得到这个错误:
'NSInvalidArgumentException', reason: '-[UITextField setMyDelegate:]: unrecognized selector sent to instance
这是我的子类代码:
我TextField.h:
@protocol MyTextFieldDelegate <NSObject>
@optional
- (void)textFieldDidDelete;
@end
@interface MyTextField : UITextField<UIKeyInput>
//create "myDelegate"
@property (nonatomic, assign) id<MyTextFieldDelegate> myDelegate;
@end
My TextField.m:
- (void)deleteBackward {
[super deleteBackward];
if ([_myDelegate respondsToSelector:@selector(textFieldDidDelete)]){
[_myDelegate textFieldDidDelete];
}
}
在我的ViewController,我想访问的UITextField子我做到以下几点:
#import "MyTextField.h"
<MyTextFieldDelegate>
@property (nonatomic, strong) IBOutlet MyTextField *passcode1;
self.passcode1.myDelegate = self;
任何想法,为什么我收到了无法识别的选择错误?它看起来像我在UITextField的子类中正确地做了所有事情。
sry ...我错过了:P –
@ Mr.T对我为什么收到错误有任何想法? –
你在视图控制器中有方法textfieldiddlete吗? –