I'm setting a UITextField placeholder's text using:
textField.placeholder = "placeholder"
Then, as I am using a UIPickerView as my inputView, when a picker view element is selected I update the placeholder by doing textField.placeholder = nil and making the textField.text = "pickerViewValue". But the placeholder doesn't clear and there is a slight shadow behind the text as shown below:
https://i.stack.imgur.com/aQzwA.jpg
(You have to look really close to see it. You'll see it says 'Size' super faintly behind the darker L).
I've tried setting the text and attributedText as placeholders instead of using the placeholder property, but whenever I do this, the first value set to either text or attributedText remain in the background just like the placeholder text did. I've tried setting all these attributes to nil and to "". No dice. Wondering if anyone has had a similar issue.
Had trouble formatting code so here's a pastebin:
The important stuff is in the configure, updatePickerViews, and extensions of ProductView
let toolBar = UIToolbar()
toolBar.barStyle = .default
toolBar.isTranslucent = true
toolBar.tintColor = globalAppleBlue
toolBar.sizeToFit()
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItem.Style.plain, target: self, action: #selector(donePickerViewButtonTapped(_:)))
doneButton.setTitleTextAttributes([
NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 18)], for: .normal)
toolBar.setItems([spaceButton, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true
let textField = VoraTextField(leftPadding: globalPadding * 1.5, rightPadding: 0.0)
textField.backgroundColor = UIColor(red: 240/255, green: 240/255, blue: 240/255, alpha: 0.9)
textField.placeholder = option.name.capitalized
let imageView = UIImageView(image: UIImage(named: "right-angle"))
imageView.contentMode = .scaleAspectFit
textField.rightView = imageView
textField.rightViewMode = .always
textField.font = UIFont.boldSystemFont(ofSize: 16)
textField.textColor = .black
textField.delegate = self
textField.inputAccessoryView = toolBar
let pickerView = UIPickerView()
self.pickerViewArray.append(pickerView)
pickerView.showsSelectionIndicator = true
pickerView.backgroundColor = .white
textField.inputView = pickerView
textField.borderStyle = .roundedRect
pickerView.delegate = self
I'm not really sure what's causing the issue but as a workaround try to add solid background color in your textfield.
Of course with that values, the color will be much darker.