名为“textFieldShouldReturn(textField:)”的方法的返回值有啥区别? [复制]

Posted

技术标签:

【中文标题】名为“textFieldShouldReturn(textField:)”的方法的返回值有啥区别? [复制]【英文标题】:What is difference between the return value of the method named "textFieldShouldReturn(textField:)"? [duplicate]名为“textFieldShouldReturn(textField:)”的方法的返回值有什么区别? [复制] 【发布时间】:2020-03-08 04:11:01 【问题描述】:

我在实现UITextField的委托方法textFieldShouldReturn时有疑问,不知道返回值有什么区别。

我在里面试过return falsereturn true,但是我没有发现它们之间的区别,而且我的自定义委托方法都被执行了,程序似乎运行良好。 ????

这是我的代码:

    func textFieldShouldReturn(_ textField: UITextField) -> Bool 
        let legalInput = tagTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
        if !legalInput.isEmpty 
            if isUpdate 
                if tag!.tagName != legalInput 
                    delegate?.didUpdateTagName(tagName: legalInput)
                
             else 
                delegate?.didAddTag(tagName: legalInput, themeId: themeId)
            
        
        navigationController?.popViewController(animated: true)

        // return false
        return true
    

【问题讨论】:

【参考方案1】:

如果文本字段应该为return button; 实现其default 行为,则为YES,否则为NO

每当用户点击返回按钮时,文本字段都会调用此方法。您可以使用此方法在点击按钮时实现任何自定义行为。例如,如果您想在用户点击返回按钮时关闭键盘,您的实现可以调用resignFirstResponder 方法。

你可以在docs阅读。

如果你想在用户点击return button时隐藏键盘那么

return true

否则默认为 false ,逻辑取决于您的 UX 是否希望键盘始终可见。

【讨论】:

感谢您的回答。是的,我之前读过 Apple 文档,但是返回按钮的“默认行为”是什么,如果我想关闭键盘,我可以调用“resignFirstResponder”,然后调用“return false”,然后它也可以工作。返回值 like 无效。我试过了: func textFieldShouldReturn(_ textField: UITextField) -> Bool textField.resignFirstResponder() return false

以上是关于名为“textFieldShouldReturn(textField:)”的方法的返回值有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从 UIBarButtonItem 触发 textFieldShouldReturn

textFieldShouldReturn - completionHandler 中的某些方法永远不会被调用

在 iOS 中未调用 textFieldShouldReturn

TextFieldShouldReturn 未被调用

textFieldShouldReturn未在iOS中调用

UITextField 自定义 InputView - 如何让 textFieldShouldReturn 触发?