Я устанавливаю UITextField
текст заполнителя, используя:
textField.placeholder = "placeholder"
Затем, так как я использую UIPickerView
в качестве моего inputView
, когда выбран элемент просмотра средства выбора, я обновляю placeholder
, выполняя textField.placeholder = nil
и делая textField.text = "pickerViewValue"
. Но заполнитель не очищается, и за текстом появляется небольшая тень, как показано ниже:
https://imgur.com/a/sMHvEje
(Вы должны посмотреть очень близко, чтобы увидеть это. Вы увидите, что надпись «Размер» очень слабо скрывается за темным L).
Я пытался установить текст и attributedText
в качестве заполнителей вместо использования свойства заполнителя, но всякий раз, когда я делаю это, первое значение, установленное либо для текста, либо attributedText
, остается в фоновом режиме, как текст заполнителя. , Я попытался установить все эти атрибуты на ноль и "". Нет кости. Хотите знать, если у кого-то была подобная проблема.
Возникли проблемы с форматированием кода, поэтому вот код для вставки:
https://pastebin.com/pqmtaBeG
Важные вещи находятся в конфигурации, updatePickerViews и extensions
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