【问题标题】:shouldChangeCharactersInRange method not called after calling becomeFirstResponder调用 becomeFirstResponder 后未调用 shouldChangeCharactersInRange 方法
【发布时间】:2012-08-27 11:31:26
【问题描述】:

您好,我是 iOS 新手,

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

中出现问题

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

请帮帮我。

【问题讨论】:

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


    【解决方案1】:

    首先在接口中添加这个代理:

     @interface yourViewController : UIViewController<UITextFieldDelegate>
    

    如果从 xib 使用,则右键单击 UITextField 并将委托与文件所有者绑定 在 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;
     }
    

    【讨论】:

    • 感谢您的回复。我已经设置了委托,但如果我删除调用 becomeFirstResponder 它仍然无法正常工作。在 xcode 3.2.5 中,即使调用 becomeFirstResponder 也可以正常工作。问题只在 xcode 4.2.1
    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多