Отобразить текстовое поле 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 в NSUserDefaults?
  • Заполнение значения Selected в представлении Picker
  • Как установить цвет фона UIPickerView на iOS 7 с помощью SDK 7?
  • Как я могу поддерживать VoiceOver в UIPickerView на iPad с iPhone-приложением (не универсальным)?
  • Проблема выбора кнопки UIPickerView в iOS 7
  • iOS: сохранение настроек двойного выбора (сохранение данных)
  • Ошибка сборки: присвоение 'id <UIPickerViewDataSource>' из несовместимого типа NSArray *
  • Как я могу запрограммировать более одного UIPickerView в том же представлении?
  • Завершение приложения из-за неперехваченного исключения «UIViewControllerHierarchyInconsistency»,
  • Индикатор выбора UIPickerView не отображается в iOS10
  • UIDatePicker выберите месяц и год
  • Interesting Posts

    Извлечение журналов устройств с помощью командной строки

    Контейнерное добавление

    Новые журналы сбоев не отображаются в организаторе для одного конкретного устройства iOS

    iOS: Какие ошибки могут быть вызваны NSPersistentStoreCoordinator addPersistentStoreWithType: configuration: URL: options: error:

    Проблема столкновения с физикой Sprite Kit

    Автоматическая сборка iOS от Jenkins имеет папку SwiftSupport, отсутствующую

    Кодирование строки UIImage в Base64, не работающей при передаче на сервер

    Объединение условий «AND» и «OR» в NSPredicate

    Как я могу избежать этого регулярного выражения правильно в Objective-C?

    NSURLSession / NSURLConnection Ошибка загрузки HTTP (kCFStreamErrorDomainSSL, -9801)

    setContentOffset: анимированный: ничего не сделает, если анимированный = НЕТ

    Чистый css3 параллакс и мобильный

    NSNumberFormatter с разделителем с запятой

    MMDrawerController не работает с CocoaPods

    Ошибка IOS 11 UITableView

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.