2016-12-14 3 views
0

Хорошо, поэтому у меня есть панель инструментов, которую я использую в качестве аксессуара, поэтому она появляется только при появлении клавиатуры. Я немного работаю, делая это;Сделать TextField активным на кнопке Нажмите

@IBOutlet var toolBar: UIToolbar! 
@IBOutlet weak var playerInput: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    playerInput.delegate = self 
    playerInput.inputAccessoryView = toolBar 
} 

Чтобы проверить свою работу, я просто сделать временный TextField в представлении где-то, и связано это как playerInput. Но это не то, что мой проект требует в конце. Мне нужно, чтобы textField находился на панели инструментов, которая использовалась в качестве аксессуара, и на кнопке на моей панели навигации, которая выбирает textField, как пользователь, к ней прикоснулся, так что он поднимает клавиатуру, панель инструментов и фокусируется.

Возможно ли, чтобы моя кнопка функционировала @IBAction func addButton(){}, как пользователь коснулся текстового поля, так что он отображает клавиатуру и показывает панель инструментов?

EDIT: Когда я добавляю playerInput.becomeFirstResponder() к моей кнопке @IBAction функция, ничего не происходит. Выполняя это на моем iPhone 6s или iPhone Simulator, нажатие кнопки ничего не делает. Добавив консольную печать, чтобы убедиться, что кнопка работает, работает нормально, поэтому я знаю, что кнопка работает.

EDIT 2: Хорошо, поэтому у меня очень страшное обходное решение, чтобы получить что-то. Я добавил второй текстовый экран к основному виду и сделал его скрытым. Затем установите мой аксессуар на панели инструментов на новый скрытый текстовый экран. Поэтому, когда кнопка нажата, он вызывает скрытый textField в качестве первого ответчика, который прикрепляет панель инструментов, на которой есть реальный textField. Затем пользователь может выбрать реальный textField и сохранить их запись должным образом. Это все работает сейчас. Единственная проблема заключается в том, что пользователь отбрасывает клавиатуру, прокручивая ее вниз, и панель снова появится снова, заставив их снова закрыть ее.

ответ

1

Да, вы можете достичь этого с помощью playerInput.becomeFirstResponder().

+0

К сожалению, добавив эту функцию в мою кнопку и работая в симуляторе или на моем iPhone 6s, ничего не происходит. Кнопка при нажатии, подсвечивается и даже печатает на консоли, когда я добавляю 'print (« Кнопка нажата »)'. – kingfoot

+0

Вы уверены, что в симуляторе включена клавиатура программного обеспечения? Симулятор> Оборудование> Клавиатура> Переключить программную клавиатуру. – Connor

+0

Да. Как я уже сказал, оба симулятора И мои фактические iPhone 6 ничего не делают при нажатии кнопки. – kingfoot

Смежные вопросы