Swift:MaterialComponents TextFields快速单击时出现意外的占位符行为

时间:2018-10-01 04:20:32

标签: ios swift material-components material-components-ios

我已经在MaterialComponents on Github上打开了问题,但似乎还没有答案。 问题是当我单击该文本框使其处于活动状态,然后单击外部时,它工作正常,但是当我重复这样做时,该文本框的占位符将始终位于顶部

这是图像的问题

在加载文本字段时: enter image description here

文本字段处于活动状态时: enter image description here

当我们重复单击文本字段然后再次在外部单击时,它将看起来像这样 enter image description here

这是代码:

@IBOutlet weak var textfieldFloating: MDCTextField!
let tf = MDCTextInputControllerOutlined()

override func viewDidLoad() {
        super.viewDidLoad()
        textfieldFloating.leftView = UIImageView(image: UIImage(named: "ic_lock_outline_white_18pt"))
        textfieldFloating.leftViewMode = .always
        textfieldFloating.placeholder = "Placeholder"
        tf.textInput = textfieldFloating
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }

1 个答案:

答案 0 :(得分:0)

我个人会去https://github.com/raulriera/TextFieldEffects CocoaPod它具有许多可以使用的不同样式,最重要的是它非常简单易用。

只需使用pod init创建一个pod文件 然后添加:

use_frameworks!
pod 'TextFieldEffects'

到您的Pod,并通过pod install从终端安装。

要使用它:

该库是一个简单的插件,将子类设置为一种效果,将模块设置为TextFieldEffects后,您将能够在情节提要中看到所有IBDesignable设置。

您还可以根据需要在没有情节提要的情况下以编程方式使用它:

let textField = KaedeTextField(frame: textFieldFrame)
textField.placeholderColor = .darkGrayColor()
textField.foregroundColor = .lightGrayColor()

view.addSubView(textField)