xcode Swift textFieldDidChangeSelection在iOS 12中未被调用

zhte4eai  于 2023-08-07  发布在  Swift
关注(0)|答案(2)|浏览(165)

所以我做了这个函数,当2个文本字段达到最小文本计数时触发,将使按钮启用。
它在iOS 13及以上版本上工作,但在iOS 12上不工作……我不知道它是如何工作的,为什么不工作
所以基本上我的textFieldDidChangeSelection doenst触发任何东西,当我在我的textfield上键入.....它不工作在ios 12,但它的工作在13以上
我尝试在textFieldDidChangeSelection上打印一些内容,但在控制台上未打印任何内容
这是我的代码
//这是我的func代码

func buttonReady() {
    if phoneNumberTextField.text!.count > 8 &&   textPinTextField.text!.count == 6{
          loginButton.isUserInteractionEnabled = true
          loginButton.backgroundColor = UIColor.init(string:    COLOR_RED)
          loginButton.setTitleColor(UIColor.white, for: .normal)
          print("ahaaaa 🏌🏻")
      } else {
          loginButton.isUserInteractionEnabled = false
          loginButton.backgroundColor = UIColor.init(string: COLOR_GREY_BUTTON)
          loginButton.setTitleColor(UIColor.init(string: COLOR_GREY_TEXT), for: .normal)
          print("hmmmm 🤔")
      }
  }

字符串
我在这里用了那个函数

func textFieldDidChangeSelection(_ textField: UITextField) {
    if textField == phoneNumberTextField {
        buttonReady()
        
    }
    if textField == textPinTextField {
        buttonReady()
        
    }
    
}


还有这里

override func viewDidLoad() {
    super.viewDidLoad()
    
    // Do any additional setup after loading the view.
    
    buttonReady()
    hideKeyboardWhenTappedAround()
}


我正在使用SkyFloatingLabelTextField作为我的自定义文本字段
我仍然不明白为什么func不能在ios 12上工作,而它可以在ios 13及以上版本上工作

yhuiod9q

yhuiod9q1#

同样的问题
你可以试试这个

override func viewDidLoad() {
    super.viewDidLoad()
    
    // Do any additional setup after loading the view.
    phoneNumberTextField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
    textPinTextField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
    buttonReady()
    hideKeyboardWhenTappedAround()
}

字符串

@objc func textFieldDidChange() {
    buttonReady()
}

3gtaxfhh

3gtaxfhh2#

查看UITextField.h,您将看到:

- (void)textFieldDidChangeSelection:(UITextField *)textField API_AVAILABLE(ios(13.0), tvos(13.0));

字符串
textFieldDidChangeSelection仅适用于iOS 13.0及更高版本。

相关问题