Как установить пользовательскую клавиатуру в качестве клавиатуры по умолчанию для UITextView?

Я создал пользовательскую клавиатуру, и она отлично работает. Но я не знаю, как настроить свою пользовательскую клавиатуру на определенный UITextField. Это мой KeyboardViewController

import UIKit

class KeyboardViewController: UIInputViewController {

    @IBOutlet var nextKeyboardButton: UIButton!
    @IBOutlet weak var percentView: UIView!
    @IBOutlet weak var hideKeyboardButton: UIButton!

    override func updateViewConstraints() {
        super.updateViewConstraints()

        // Add custom view sizing constraints here
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Perform custom UI setup here
        self.nextKeyboardButton = UIButton(type: .System)

        self.nextKeyboardButton.setTitle(NSLocalizedString("Next Keyboard", comment: "Title for 'Next Keyboard' button"), forState: .Normal)
        self.nextKeyboardButton.sizeToFit()
        self.nextKeyboardButton.translatesAutoresizingMaskIntoConstraints = false

        self.nextKeyboardButton.addTarget(self, action: "advanceToNextInputMode", forControlEvents: .TouchUpInside)

        self.view.addSubview(self.nextKeyboardButton)


        let nextKeyboardButtonLeftSideConstraint = NSLayoutConstraint(item: self.nextKeyboardButton, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 0.0)
        let nextKeyboardButtonBottomConstraint = NSLayoutConstraint(item: self.nextKeyboardButton, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1.0, constant: 0.0)
        self.view.addConstraints([nextKeyboardButtonLeftSideConstraint, nextKeyboardButtonBottomConstraint])

        let nib = UINib(nibName: "KeyboardView", bundle: nil)
        let objects = nib.instantiateWithOwner(self, options: nil)
        view = objects[0] as! UIView;

        for view in self.view.subviews {
            if let btn = view as? UIButton {
                btn.layer.cornerRadius = 5.0
                btn.translatesAutoresizingMaskIntoConstraints = false
                //btn.addTarget(self, action: "keyPressed:", forControlEvents: .TouchUpInside)
            }
        }
    }

и другие методы делегирования. Итак, как я могу назвать это? На самом деле проблема в том, что я не мог импортировать пользовательские классы клавиатуры из расширения приложения. Это главная проблема. Я сделал это на всех этапах сборки. И я могу использовать клавиатуру, если сам поменяю клавиатуру.


person letitbefornow    schedule 03.11.2015    source источник
comment
Вы хотите добавить собственный шрифт в UITextField или просто использовать эту клавиатуру для определенного текстового поля?   -  person Caleb Bach    schedule 03.11.2015
comment
Неа. Я создал цифровую клавиатуру в качестве пользовательской клавиатуры для приложения iPad. Поэтому мне нужно установить эту клавиатуру для некоторых конкретных UITextFileds на клавиатуру по умолчанию.   -  person letitbefornow    schedule 03.11.2015
comment
Вы можете найти свой ответ здесь, индивидуальная клавиатура   -  person DevNinja    schedule 30.08.2016


Ответы (1)


Согласно документации Apple

После того, как пользователь выберет пользовательскую клавиатуру, она станет клавиатурой для каждого приложения, которое открывает пользователь.

Поэтому это не похоже на специфику вашего приложения, это больше похоже на клавиатуру на разных языках. Поскольку вы не можете указать какую-либо конкретную языковую клавиатуру для своего UITextField или UITextView, вы также не можете указать свою пользовательскую клавиатуру.

Вы уверены, что вам нужна пользовательская клавиатура вместо пользовательского представления для ввода данных внутри вашего приложения? О настраиваемых представлениях ввода данных вы можете прочитать здесь.

person iyuna    schedule 03.11.2015
comment
На самом деле в obj-c я тоже могу это сделать. Но проблема в том, что я не мог импортировать пользовательские классы клавиатуры из расширения приложения. Это главная проблема. - person letitbefornow; 04.11.2015