You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:35:33