textFieldShouldReturn:方法问题

时间:2013-11-30 12:11:59

标签: ios iphone objective-c cocoa-touch

当我在文本字段中输入时,我必须解除键盘控制,因此我使用textFieldShouldReturn:方法,其中我使用[textField resignFirstResponder]。直到这里它还好。

我觉得奇怪的是,如果我将YESNO返回给此方法,则行为保持不变。我检查了文档,它说你应该只返回YES来实现默认行为,否则返回NO。他们在文档中提到了哪个默认实现?我没弄明白。

2 个答案:

答案 0 :(得分:0)

只需在键入return键时调用此方法。如果你返回NO,这将被忽略。如果要关闭键盘返回YES。 您也可以拨打[textField resignFirstResponder] textFieldDidEndEditing:如果你想在编辑textField时解雇键盘。

答案 1 :(得分:0)

Document明确指出:

  

请注意,此方法仅提供有关是否的建议   编辑应该结束。即使你从这个方法返回NO,它也是   编辑可能仍然可能结束。例如,这可能发生   当文本字段被强制重新签署第一响应者状态时   从父视图或窗口中删除。

     

委托实现此方法是可选的。如果是   不存在,第一个响应者状态就像这个方法一样被辞职   已经返回YES。

如果您不想使用default behaviour,请使用return NO

例如:

  

有些约束你不想解雇键盘或其他   textFields作为becomeFirstResponder,即使你点击其他   文本框。

如果您需要了解,请尝试以下方法:

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

    if ([textField.text length]< 4) {
        return NO;
       // [self animateUItextField:self.txtNewPassword];

    }else{
        return YES;

}
}

澄清您的问题:

You are about to resign the textField manually, So there is nothing to deal with the return expression,