2017-01-19 37 views
0

我是目标C新手。我要做的事情很简单,只是在文本框聚焦时为键盘加上动画,而当文本框不在时缩小。我已经遵循了一些关于如何一步一步设置这个教程的其他教程,但它不工作。当textfeld焦点时,事件textViewDidBeginEditing从未被调用。textViewDidBeginEditing不工作在IOS 9

@interface ViewController : UIViewController<UITextFieldDelegate> 

@property (weak, nonatomic) IBOutlet UITextField *cCodeTextField; 

@property (weak, nonatomic) IBOutlet UITextField *jidTextField; 

- (IBAction)nextBtnTapped:(id)sender; 
@end 

我也设置代表文本字段,但它不工作。

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [self addTextFieldBorder:_jidTextField]; 
    [self addTextFieldBorder:_cCodeTextField]; 

    _jidTextField.delegate = self; 
} 

-(void) textViewDidBeginEditing:(UITextView *)textView { 
    NSLog(@"Enter"); 
} 

回答

1

它看起来像你的ViewController类是从错误的委托实现方法。当它应该实现UITextFieldDelegate方法时,它正在执行UITextViewDelegate方法。

请注意,'jidTextField'类型为UITextField

你委托方法被称为“textViewDidBeginEditing”,这是一个UITextViewDelegate方法和花费的UITextView作为参数。

的这里的问题是,你的类实现委托功能UITextViewDelegate,而不是UITextFieldDelegate

正确的方法定义是:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; 

下面是对文件的链接正确的委托: https://developer.apple.com/reference/uikit/uitextfielddelegate

希望这有助于!

+0

哦。我现在只是注意到,谢谢,你救了我的一天:)。 – digit

+0

但是在列表中没有textFieldShouldBeginEditing,也许它已被弃用。我想应该使用这一个 - > textFieldDidBeginEditing。 – digit