課題
UITextViewでエディタを作っていると、
""
が勝手に“”
に変換される''
が勝手に‘’
に変換される--
が勝手に—
に変換される
という状況に出会って困ることがあります。
これはなに?
これはスマート引用符とスマートダッシュという機能です。Macでコードや技術的な文章を書いている人は、
設定画面のこのチェックを外しましょうという記事に出会います。このスマート引用符とスマートダッシュはiOS/iPadOSのUITextViewにも導入されているため、iPhone/iPadでも同様の自動変換が発生してしまいます。
対応策
OSの設定を変える
設定アプリ > 一般 > キーボード > スマート句読点をOFF
これでOS全体でスマート系(自動変換系)の機能がOFFになります。
UITextViewの設定を変える
OS側の設定でも変更可能ですが、わざわざOS設定を変えなくても特定のUITextViewでこれらの自動変換機能を止めたい場合があると思います。
UITextViewには
smartQuotesTypeとsmartDashesTypeというプロパティがあるので、これらに .no
を指定してあげるだけで良いです。
コード例としては、
override func viewDidLoad() { super.viewDidLoad() textView.smartDashesType = .no textView.smartQuotesType = .no }
こんな感じ。