【发布时间】:2015-11-17 19:44:34
【问题描述】:
检测退格的明确答案是创建 UITextField 的子类并覆盖 deleteBackward 属性。
我已经创建了一个 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
我的 TextField.m:
- (void)deleteBackward {
[super deleteBackward];
if ([_myDelegate respondsToSelector:@selector(textFieldDidDelete)]){
[_myDelegate textFieldDidDelete];
}
}
在我想要访问 UITextField 子类的 ViewController 中,我执行以下操作:
#import "MyTextField.h"
<MyTextFieldDelegate>
@property (nonatomic, strong) IBOutlet MyTextField *passcode1;
self.passcode1.myDelegate = self;
关于我为什么会收到无法识别的选择器错误的任何想法?在我看来,我在子类化 UITextField 方面做的一切都是正确的。
【问题讨论】:
-
sry...我错过了:P
-
@Mr.T 关于我收到错误的原因有什么想法吗?
-
你的视图控制器中有 textfieldiddlete 方法吗?
-
问题似乎与设置委托有关,与删除方法无关。
-
@Mr.T 我的 ViewController 中确实有 textFieldDidDelete,它永远不会被调用。视图加载时崩溃
标签: ios objective-c uitextfield subclass