Отобразить текстовое поле UIPickerView, затем скрыть после выбранного

Я пытаюсь создать текстовое поле, которое, когда оно выбрано, открывается UIPickerView с вариантами выбора. После выбора UIPickerView скрывается, и выбранный элемент отображается в текстовом поле. Я пробовал разные фрагменты кода, которые я нашел в Интернете, но я просто не могу заставить его работать. Если кто-то может предложить полный код для этого или сказать мне, что я делаю неправильно в своем коде, это было бы супер удивительно. Спасибо.

Вот мой код:

@IBOutlet var textfieldBizCat: UITextField! @IBOutlet var pickerBizCat: UIPickerView! = UIPickerView() var bizCat = ["Cat One", "Cat Two", "Cat Three"] override func viewDidLoad() { super.viewDidLoad() var bizCatCount = bizCat.count self.textfieldBizCat.inputView = pickerView } // returns the number of 'columns' to display. func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int{ return 1 } // returns the # of rows in each component.. func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int{ return bizCat.count } func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! { return bizCat[row] } func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int) { textfieldBizCat.text = "\(bizCat[row])" } 

3 Solutions collect form web for “Отобразить текстовое поле UIPickerView, затем скрыть после выбранного”

Если бы я хорошо понял ваш вопрос, вы хотите:

  1. Имейте UITextField который отображает выбранный текст
  2. Открытие сборщика, когда пользователь нажимает на UITextField
  3. Закройте сборщик, когда выбран элемент (в сборщике), и установите его в `UITextField

Это полный код для управления им, вам просто нужно связать делегата вашего UITextField :

 @IBOutlet var textfieldBizCat: UITextField! @IBOutlet var pickerBizCat: UIPickerView! = UIPickerView() var bizCat = ["Cat One", "Cat Two", "Cat Three"] override func viewDidLoad() { super.viewDidLoad() pickerBizCat.hidden = true; textfieldBizCat.text = bizCat[0] } // returns the number of 'columns' to display. func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int{ return 1 } // returns the # of rows in each component.. func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int{ return bizCat.count } func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! { return bizCat[row] } func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int) { textfieldBizCat.text = bizCat[row] pickerBizCat.hidden = true; } func textFieldShouldBeginEditing(textField: UITextField) -> Bool { pickerBizCat.hidden = false return false } 

Что я изменил с вашего кода:

  • Используется UITextFieldDelegate для отображения сборщика при UITextField
  • Скройте сборщик после выбора элемента и настройте UITextField
  • Установите первую строку вашего сборщика в UITextField когда выбран любой элемент
  // pressing the button again would hide the uipickerview. when pressed the first time, update the button's label to "done" , "hide" or whatever suits u! @IBAction func propertyTypeButtonPressed(sender: UIButton)/* the name of your button's action*/ { count++; //declare it first ViewContainigPickerView.hidden = false self.view.endEditing(true) if (count == 2) { ViewContainingPickerView.hidden = true /* if you placed your picker on a separate view for simplicity*/ count = 0; } } 

Как насчет метода yourSelectRow, который вы resignFirstResponder?

 func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int) { textfieldBizCat.text = bizCat[row] pickerBizCat.resignFirstResponder() } 
  • UIPickerView, обнаружить «катящееся колесо», начать и остановить?
  • Отключить методы делегирования в зависимости от версии iOS
  • Почему UIPickerView показывает с белой рамкой
  • Цвет ярлыка выделенного ярлыка UIPickerView
  • iOS: сохранение настроек двойного выбора (сохранение данных)
  • хотите показать UIPickerView в UIAlertController или UIPopoverController Swift?
  • Как добавить пользовательский UIPickerView в UINavigationBar?
  • Как дать этому сборщику представление источника данных
  • Как устранить проблему Disappearing / Invisible / Empty UITableViewCells в Swift?
  • Как я могу динамически изменять высоту строки UIpickerview на протяжении всей своей жизни?
  • Как изменить размер UIPickerView / UIDatePickerView с автоматическим расположением в режиме ландшафтного вращения?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.