Отключить клавиатуру с жестом салфетки
В Messages.app вы можете отключить клавиатуру, прокрутив список. Чтобы быть ясным, это не просто ответ на событие scrollViewDidScroll
. При прокрутке вниз клавиатура треки пальцем. Любая идея, как это делается?
Ответы
Ответ 1
С iOS 7 вы можете использовать
scrollView.keyboardDismissMode = .Interactive
Из документации:
UIScrollViewKeyboardDismissModeInteractive
Клавиатура следует за перетаскивая сенсорный экран, и его можно снова открыть вверх, чтобы отменить увольте.
Ответ 2
В XCode, инспекторе атрибутов, scrollView
имеет атрибут Keyboard
. Он имеет 3 варианта.
- Не отклоняй
- Отклонение при перетаскивании
- Отключите интерактивный интерфейс.
![UIScrollView properties]()
Ответ 3
Так как iOS7, UIScrollView
и все наследуемые от него классы (включая UITableView
) имеют свойство keyboardDismissMode
. keyboardDismissMode
имеет следующее объявление:
var keyboardDismissMode: UIScrollViewKeyboardDismissMode { get set }
Способ, которым клавиатура отклоняется, когда в представлении прокрутки начинается перетаскивание.
Обратите внимание, что UIScrollViewKeyboardDismissMode
является перечислением, которое имеет случаи none
, interactive
и onDrag
.
# 1. Установите программный код UIScrollViewKeyboardDismissMode
Ниже приведенный ниже фрагмент кода Swift 3 показывает возможную реализацию keyboardDismissMode
:
override func viewDidLoad() {
super.viewDidLoad()
// Dismiss keyboard when scrolling the tableView
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissMode.interactive
/* ... */
}
# 2. Установите UIScrollViewKeyboardDismissMode
в раскадровке
В качестве альтернативы программному подходу выше вы можете установить значение UIScrollViewKeyboardDismissMode
для UIScrollView
в раскадровке.
- Выберите экземпляр
UIScrollView
/UITableView
,
- Выберите Инспектор атрибутов,
- Задайте правильное значение для клавиатуры.
![введите описание изображения здесь]()
Ответ 4
Если вы используете tableView
и Swift 3 или Swift 4, он работает с помощью:
tableView.keyboardDismissMode = .onDrag