Вы можете использовать вспомогательное представление клавиатуры.
override func viewDidLoad() {
super.viewDidLoad()
let bar = UIToolbar()
let boldButton = UIBarButtonItem(title: "Bold", style: .plain, target: self, action: #selector(toggleBold))
let italicButton = UIBarButtonItem(title: "Italic", style: .plain, target: self, action: #selector(toggleItalic))
bar.items = [boldButton, italicButton]
bar.sizeToFit()
textView.inputAccessoryView = bar
guard let font = getFont() else { assert(false); return }
textView.font = font
textView.typingAttributes = [NSAttributedString.Key.font: font]
}
Переключите логическое значение на 1 и 0, если включено / отключено для полужирного и курсива, и обновите шрифт как:
func updateFont() -> UIFont? {
let italic = keyboardAddon.italic
let bold = keyboardAddon.bold
let font = UIFont(name: "Helvetica", size: 14.0)
if bold && italic {
return font?.withTraits([ .traitBold, .traitItalic ])
} else if bold {
return font?.withTraits(.traitBold)
} else if italic {
return font?.withTraits(.traitItalic)
} else {
return font
}
}