2016-06-27 3 views
0

Вопрос о нобе здесь: я много читал об отмене клавиатуры от объектов, таких как ярлыки или события, при нажатии клавиши RETURN или других областей экрана. Однако есть ли код для отклонения клавиатуры из КНОПКИ? Я пробовал различные способы ResignFirstResponder в конце кода в моей КНОПКЕ, но безуспешно.Отключение цифровой клавиатуры

Любая помощь, которая может быть пролита, будет оценена по достоинству. Пожалуйста, помните, что я новичок во всем этом, поэтому, пожалуйста, будьте как можно более конкретными.

Спасибо

+0

Какая платформа? iOS, macOS, tvOS? –

+0

убрать клавиатуру из КНОПКИ? Что ты имеешь в виду? На клавиатуре есть кнопка или вы хотите убрать клавиатуру при нажатии этой кнопки? – Dershowitz123

+0

Извините - платформа iOS. В моей программе я определил BUTTON, называемый «btnCalculate», который вычисляет на основе ввода пользователем двух текстовых полей. Когда пользователь нажимает кнопку «btnCalculate», я хочу выполнить расчет, отпустить клавиатуру и отобразить результаты. Все работает, кроме возможности убрать клавиатуру с кодом в функции «btnCalculate». - Спасибо – CNE

ответ

1

Вы можете отправить endEditing(_:) в текстовое поле, которое является первым ответчиком, или любой надтаблицы его, чтобы сделать его уйти в отставку первый ответчик и закрыть клавиатуру. Окно представляет собой вид, и является SuperView всех других ваших взглядов, и легко получить ссылку на:

@IBAction func calculateButtonWasTapped(sender: AnyObject?) { 
    view.window?.endEditing(true) 

    // perform calculation here 
} 
+0

Это сработало! Спасибо вам за решение, а также за объяснение. – CNE

0

Давайте просто скажем, что текстовое поле называется theTextField, и при нажатии UIButton запускает @IBAction под названием buttonTapped().

class ViewController: UIViewController { 

    @IBOutlet var theTextField: UITextField! 

    @IBAction func buttonTapped(sender: AnyObject) { 
     theTextField.resignFirstResponder() 
    } 
} 
+0

Спасибо skunkmb. Это также работает, однако мне придется «resignFirstResponder» для всех текстовых полей, так как любой из них может быть первымResponder. С «end.Editing (true)», у меня есть только одна запись. Однако, спасибо за ваше решение. Экспериментируя с этим, я теперь лучше понимаю эту тему. – CNE

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