Как сделать пользовательскую клавиатуру только для моего приложения в Swift?

Как сделать пользовательскую клавиатуру только для моего приложения в Swift? Я не хочу, чтобы люди переходили к настройке, а затем добавляли клавиатуру. Я хочу, чтобы они могли использовать его сразу же, когда захотят, в моем приложении. Дополнительная работа не требуется.

Как реализовать это в Swift?

Многие ссылки говорят только о добавлении новой клавиатуры в настройках. Я не хочу этого.

Я новичок в пользовательском интерфейсе, пожалуйста, дайте мне подробное объяснение.


person Team    schedule 31.10.2015    source источник


Ответы (1)


Классы 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
comment
Как вы получаете ключевой текст для ввода в текстовое поле? - person Suragch; 09.11.2015
comment
Я сделал свою собственную клавиатуру в приложении, используя этот пример: github.com/suragch/MongolAppDevelopment-iOS Надеюсь, это поможет вам начать. - person Steven B.; 16.12.2016