Swift:UIStackView内UITextField无法点击选中问题求助
UIScrollView内UITextField无法点击选中的问题
我知道这个问题已有相关提问,但现有答案都解决不了我的问题。我在UIScrollView里放置了若干UITextField,视图布局完全正常,但无论如何操作,这些UITextField都无法通过点击选中。我有其他采用相同方式实现的带UITextField的视图均能正常工作,目前毫无头绪。
我的ScrollView代码:
let scrollView = UIScrollView() scrollView.alwaysBounceVertical = true scrollView.translatesAutoresizingMaskIntoConstraints = false scrollView.showsHorizontalScrollIndicator = false
ScrollView内首先是一个ContentView(可能冗余,但我一直如此实现),它铺满ScrollView。ContentView内是垂直方向的UIStackView,所有内容都放在这个栈里。比如以下是包含标题、UITextField和错误标签的TextField栈代码:
//First Name Field let firstNameStack = UIStackView() firstNameStack.axis = .vertical firstNameStack.spacing = 5 firstNameStack.translatesAutoresizingMaskIntoConstraints = false firstNameTextFieldTitle.text = "firstName" firstNameTextFieldTitle.textColor = colors.justWhite firstNameTextFieldTitle.font = UIFont(name: "Montserrat-SemiBold", size: 14) firstNameTextFieldTitle.textAlignment = .left firstNameTextFieldTitle.translatesAutoresizingMaskIntoConstraints = false firstNameTextField.textColor = colors.justWhite firstNameTextField.backgroundColor = colors.lightyLightGray firstNameTextField.attributedPlaceholder = NSAttributedString(string: "first name".localized, attributes: [NSAttributedString.Key.foregroundColor: UIColor.white]) //ID12 firstNameTextField.font = UIFont.init(name: "montserrat", size: 18) firstNameTextField.autocorrectionType = .no firstNameTextField.textAlignment = .left firstNameTextField.layer.cornerRadius = 5 firstNameTextField.clipsToBounds = true firstNameTextField.setLeftPaddingPoints(10) firstNameTextField.setRightPaddingPoints(10) firstNameTextField.keyboardType = .default firstNameTextField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged) firstNameTextField.translatesAutoresizingMaskIntoConstraints = false firstNameTextField.delegate = self firstNameTextFieldError.textColor = colors.errorRed firstNameTextFieldError.textAlignment = .left firstNameTextFieldError.font = UIFont(name: "Montserrat-SemiBold", size: 14) firstNameTextFieldError.translatesAutoresizingMaskIntoConstraints = false firstNameStack.addArrangedSubview(firstNameTextFieldTitle) firstNameStack.addArrangedSubview(firstNameTextField) firstNameStack.addArrangedSubview(firstNameTextFieldError)
视图布局完全正常,我可以通过becomeFirstResponder()唤起键盘,但点击UITextField毫无反应。我肯定忽略了某个简单的点。
我已添加用于收起键盘的代理,并且为确保无误,添加了以下代码:
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool{ return true }
请问问题出在哪里?期待相关建议。
内容的提问来源于stack exchange,提问作者Jan L
相关产品推荐
相关产品推荐

