如何编写自定义UItextField类

Vij*_*jay 5 objective-c uitextfield ios

在我的应用程序中,我需要使用大量的文本字段,我真的不希望每个viewcontroller类包含文本字段的代理可能是凌乱的,我只是想创建一个通用类,它负责文本字段的委托并返回一个文本字段,我可以将其作为子视图添加到我需要的地方.我想把它作为一个库,每当我需要一个文本字段时调用该类

CustomTexTField *textField = [[CustomTextField alloc] initWithFrame:Frame];
// returns  a textField whose delegate will be set to CustomTextField //
// all i should do is just adding it as a subView //
[self.view addSubView:textField];
Run Code Online (Sandbox Code Playgroud)

这可能吗??.提前致谢!!

Man*_*wal 7

正如Midhun回答的那样,您需要创建一个自定义TextField类,并在该类中设置委托.像这样

.h FIle

@interface CustomTextField : UITextField<UITextFieldDelegate>
@end
Run Code Online (Sandbox Code Playgroud)

.m文件

@implementation CustomTextField
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        self.delegate = self;
    }
return self;
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField{
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    return YES;
}
- (BOOL)textFieldShouldClear:(UITextField *)textField{
    return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    return YES;
}
@end
Run Code Online (Sandbox Code Playgroud)