проверьте, содержит ли представление выбора текстового представления определенную строку

#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
    }
}