交换 UITextField 的 isEnabled 更改背景颜色以及如何防止它
Posted
技术标签:
【中文标题】交换 UITextField 的 isEnabled 更改背景颜色以及如何防止它【英文标题】:Swapping isEnabled of UITextField changes background color and how to prevent it 【发布时间】:2021-03-24 22:45:58 【问题描述】:我有两个 UITextField
s,其中一个 isEnabled
设置为 false。当我交换两个文本字段中的isEnabled
时,一个在交换自动将背景颜色变为浅灰色后启用。
我猜这是 UIKit 自动提供的一些功能,但我希望它被禁用。
func swapEvaluatedMoreAndLess()
// - Prepare Values
// Use shortened name ref since originals are named bit long
let moreField: UITextField = placeEvaluatedMoreTextField
let lessField: UITextField = placeEvaluatedLessTextField
// Store ref
let moreText: String? = moreField.text
let lessText: String? = lessField.text
let moreFieldEnabled: Bool = moreField.isEnabled
let lessFieldEnabled: Bool = lessField.isEnabled
// - Swap
// Swap text
placeEvaluatedMoreTextField.text = lessText
placeEvaluatedLessTextField.text = moreText
// Swap isEnabled
placeEvaluatedMoreTextField.isEnabled = lessFieldEnabled
placeEvaluatedLessTextField.isEnabled = moreFieldEnabled
【问题讨论】:
【参考方案1】:也许你可以试试isUserInteractionEnabled
,这个属性不会改变背景颜色,也不会停止接收用户的触摸事件。
【讨论】:
以上是关于交换 UITextField 的 isEnabled 更改背景颜色以及如何防止它的主要内容,如果未能解决你的问题,请参考以下文章
WPF IsEnabled 和 IsHitTestVisible
在 UIControl 中覆盖 isEnabled 以仍然允许触摸
isEnable() 和 isDisplayed() 和 isSelected()