5
我有一个UIView
(名为HCTextFieldView),子视图:UITextField
和UILabel
上面。同时在自定义UIView和UIViewController中使用相同的UITextFieldDelegate方法
UITextField's
委托等于自己。代表方法textFieldDidBeginEditing
和textFieldDidEndEditing
执行文本框的背景突出显示效果。
Next我在我的UIViewController
中使用此自定义UIView
(HCTextFieldView)。要处理工具栏中的“下一个”和“上一个”按钮的动作(附加在文本框的键盘上),我需要在UIViewController
,但是代理被覆盖的情况下使用相同的文本框代理方法。
**@interface HCBaseTextField : UIView <UITextFieldDelegate>**
...
@end
**@implementation HCBaseTextField {}**
...
textField = [[UITextField alloc] initWithFrame:CGRectMake(0, titleLabel.bottom, self.width - 20, self.height - titleLabel.height)];
**textField.delegate = self**;
...
#pragma mark - UITextField delegate
//textFieldBG - UIImageView that act as background
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[textFieldBg setImage:[[UIImage imageWithName:@"btn_vvod_medium_act"] stretchableImageWithLeftCapWidth:10 topCapHeight:10]];
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
[textFieldBg setImage:[[UIImage imageWithName:@"btn_vvod_medium_norm"] stretchableImageWithLeftCapWidth:10 topCapHeight:10]];
return YES;
}
...
@end
**ViewController : UIViewController**
...
HCTextFieldView *textFieldView = [[HCTExtFieldView alloc] init];
textFieldView.textField.delegate = self;
...
//I need to use this methods too but they override previous in UIView delegate
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[self.keyboardControls setActiveField:textField];
}
- (void)textViewDidBeginEditing:(UITextView *)textView
{
[self.keyboardControls setActiveField:textView];
}