私はストーリーボードにUITextViewを持っています(テキスト属性は属性で、属性の編集を許可します。ユーザーがボタンを押すと、太字のフォントを「アクティブにする」ことができます。だから、ユーザーのタイプは太字でなければなりません。また、リターンキーを押すと、次の行に移動したいので、UITextViewはすべてのテキストの属性を覚えておく必要があります。問題は、リターンキーを押すと、すべての文字が太字に変わります。キーボードのリターンキーが押されたときにUITextViewがフォントスタイルを記憶していません
これは私がコードで持っているものです。
var isBoldTyping: Bool = false
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
print("text: \(text)", range)
if text == "\n" {
textView.text.append("\n")
if isBoldTyping {
//textView.typingAttributes = [NSAttributedStringKey.font.rawValue: regularText]
isBoldTyping = false
}
}
if isBoldTyping {
textView.textStorage.beginEditing()
textView.textStorage.addAttributes([NSAttributedStringKey.font: boldText], range: range)
print("Atttributed adding")
textView.textStorage.endEditing()
} else {
textView.textStorage.beginEditing()
textView.textStorage.addAttributes([NSAttributedStringKey.font: regularText], range: range)
print("Atttributed adding")
textView.textStorage.endEditing()
}
return true
}
私が達成しようとしている別の例は、スタックオーバーフローの編集効果です。 "{}"アイコンを押すと、私は "コード化可能なモード"になります。キーボードを押すと正常に戻ります。
regularTextとboldTextプロパティを使用すると、私ははっきりとあなたが達成しようとしているものを理解している場合、typingAttributes
である必要があることだけをサイズ14