#ios #swift #uitextview #uipickerview
Вопрос:
У меня есть приложение, которое позволяет людям создавать посты. Я пытаюсь проверить, содержит ли мой выбор TextView определенный текст, и если да, то должно появиться предупреждение, в котором им будет предложено выбрать еще раз.
Изображение ниже
если текст содержит «Категория работы», я хочу, чтобы появилось предупреждение с надписью «Выберите категорию».
это поле представляет собой представление выбора, встроенное в текстовое представление. Вот как я это устроил.
var data = ["Assembly", "Auto Care", "Electronic Help", "Item Delivery", "Handyman", "House Chores", "Junk Removal", "Lawn amp; Yard Care", "Moving", "Painting", "Pet Care", "Seasonal Work", "Other"]
var picker = UIPickerView()
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return data.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
JobCategory.text = data[row]
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return data[row]
}
let JobCategory: UITextField = {
let e = UITextField()
let attributedPlaceholder = NSAttributedString(string: "Job Category", attributes:
[NSAttributedString.Key.foregroundColor : GREEN_Theme])
e.setLeftPaddingPoints(6)
e.textColor = GREEN_Theme
e.attributedPlaceholder = attributedPlaceholder
e.setBottomBorder(backGroundColor: .white, borderColor: GREEN_Theme)
return e
}()
и там, где я пытаюсь показать, предупреждение находится здесь,
if self.JobCategory.text == "Job Category" {
let alert = UIAlertController(title: "Hold up!",message:" Choose a job category. ", preferredStyle: UIAlertController.Style.alert)
let continueButton = UIAlertAction(title: "Got it!", style: .default, handler: {(_ action: UIAlertAction) -> Void in
})
continueButton.setValue(GREEN_Theme, forKey: "titleTextColor")
alert.addAction(continueButton)
self.present(alert, animated: true, completion: nil)
Комментарии:
1. в методе didselect в pickerview проверьте условие и при этом отобразите предупреждение
2. должен ли я оценивать pickerView вместо TextView?
3. ДА. вы должны оценить pickerview вместо TextView
4. @RahulPhate Прости, у меня все еще проблемы
Ответ №1:
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
JobCategory.text = data[row]
if self.JobCategory.text == "Job Category" {
// write alert code here
}
}