Как внедрить пользовательские шрифты в пользовательскую клавиатуру для использования в других приложениях? - PullRequest
0 голосов
/ 09 ноября 2019

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

Вот мой код

class KeyboardViewController: UIInputViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    let button = createButton(title: "A")
    self.view.addSubview(button)
}

func createButton(title: String) -> UIButton {
    let button = UIButton(type: .system)
    button.frame = CGRect(x: 0,y: 0,width: 20,height: 20)
    button.setTitle(title, for: .normal)
    button.sizeToFit()
    button.translatesAutoresizingMaskIntoConstraints = false
    button.titleLabel?.font = UIFont(name: "Montague.ttf", size: 15)
    button.backgroundColor = UIColor(white: 1.0, alpha: 1.0)
    button.setTitleColor(UIColor.darkGray, for: .normal)
    button.addTarget(self, action: #selector(didTapButton(sender:)), for: .touchUpInside)

    return button
}

@objc func didTapButton(sender: AnyObject) {
     let button = sender as! UIButton
     button.titleLabel?.font = UIFont(name: "Montague.ttf", size: 15)
     let title = button.title(for: .normal)
     textDocumentProxy.insertText(title!)
}

Вот вывод. Результат

Итак, мой вопроскак сделать так, чтобы кнопка клавиатуры отображалась и выводилась нужным шрифтом?

1 Ответ

0 голосов
/ 09 ноября 2019

Вы можете настроить шрифт заголовка вашей кнопки, используя атрибут titleLabel кнопки.

button.titleLabel?.font = UIFont(name: "YourCustomFont", size: 10.0)

Вы не можете изменить шрифт на выходе, так как разработчики приложения решают, какие шрифты они хотят использовать в своем приложении AFAIK.

Редактировать: Ну, я не знаю, что вы имели в виду, установив вывод, для получения дополнительной информации о приложении, на которое вы ссылались, пожалуйста, прочитайте этот пост: Как вставить NSAttributedString с помощью специального расширения клавиатуры?

tl; dr: Вы не можете установить пользовательский шрифт, эти приложения используют юникоды, и если вы решите, вы тоже должны.

...