调用becomeFirstResponder后不调用shouldChangeCharactersInRange方法

时间:2012-08-27 11:31:27

标签: objective-c ios xcode4.2 uitextfield becomefirstresponder

嗨,我是iOS新手,

我在项目中使用了几个文本字段,因此我想使用 becomeFirstResponder 对任何一个文本字段进行编辑。它在 xcode 3.2.5 中运行良好,但它在 xcode 4.2.1

中出现问题

xcode 4.2.1 中,在调用 becomeFirstResponder 后,我无法编辑文本字段,它显示的是虚拟键盘,我可以点击按键但按键是没有输入文本字段。

请帮帮我。

1 个答案:

答案 0 :(得分:14)

首先在interface:

中添加此委托
 @interface yourViewController : UIViewController<UITextFieldDelegate>

如果在xib中使用,则右键单击UITextField并使用fileowner else绑定委托 在viewDidLoad的方法中添加此代码。

  yourTextField.delegate = self;

添加UITextField的委托,它将被称为

 - (BOOL)textFieldShouldReturn:(UITextField *)textField //resign first responder for textfield 
 {
    [textField resignFirstResponder];
    return YES;
 }

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
 {
   return YES;
 }