首页 > 解决方案 > 基于IOS swift中的复选框状态禁用/启用返回键

问题描述

我有一个带有文本字段和两个复选框的屏幕。当用户在文本字段中点击时,会出现键盘。我想根据以下条件启用/禁用软键盘上的返回键。

当文本字段不为空并且两个复选框都被选中时启用。当文本字段为空或未选中任何一个复选框时禁用。

有可能实现这一目标吗?

标签: iosswiftuitextfield

解决方案


创建按钮数组以存储复选框按钮的当前状态并将您的复选框按钮连接到此数组,它将用于获取按钮的当前状态

  var getSelectedState: [UIButton] = []

使用first(where:)获取复选框按钮的当前状态

返回满足给定谓词的序列的第一个元素。

    var handleButtonState : Bool{
    var setState = false
    if let getNotSelectedState = getSelectedState.first(where: { $0.isSelected == false }) {
        print("get the non selectedState of button \(getNotSelectedState)")
        setState = true
    }
    return setState

}

最后,您可以使用 UItextfield 委托启用/禁用返回键,使用enableReturnKeyAutomatically

一个布尔值,指示在用户输入文本时是否自动启用 Return 键。

 // MARK: - Textfield delegates
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
   guard let currentText = (textField.text as NSString?)?.replacingCharacters(in: range, with: string) else { return true }
    textField.enablesReturnKeyAutomatically = !currentText.isEmpty && !handleButtonState ? true :  false        
     return true 

}

推荐阅读