Классы UITextField и UITextView, используемые для ввода текста, имеют свойство inputView. По умолчанию это свойство равно нулю, но если вы предоставите ему представление, это представление будет отображаться вместо обычной клавиатуры при редактировании этого текстового поля.
Чтобы реализовать это, создайте подкласс UIView, который настраивает вашу пользовательскую раскладку клавиатуры. Затем, когда вы используете текстовое поле или текстовое представление в своем приложении, вы должны установить его отдельно для каждого поля следующим образом:
let myCustomKeyboard = MyCustomKeyboardView()
myTextField.inputView = myCustomKeyboard
Вот и все, теперь ваше текстовое поле использует пользовательскую клавиатуру, которую вы предоставили.
Поскольку вы хотите использовать клавиатуру глобально в своем приложении, а клавиатуру нужно настраивать отдельно для каждого текстового поля или текстового представления, это решение приведет к большому дублированию кода. Поскольку дублирование кода считается плохой вещью, в вашем случае лучшей реализацией будет создание подкласса UITextField или UITextView (очевидно, в зависимости от того, какой из них вы используете) и установка клавиатуры в конструкторе:
class MyCustomKeyboardTextField: UITextField {
override init() {
super.init()
setupCustomKeyboard()
}
required init(coder: aCoder) {
super.init(aCoder)
}
override func awakeFromNib() {
setupCustomKeyboard()
}
func setupCustomKeyboard() {
// Set the custom keyboard
self.inputView = MyCustomKeyboardView()
}
}
Теперь пользовательское представление клавиатуры будет использоваться везде, где вы используете этот подкласс.
person
icant
schedule
31.10.2015