本文へスキップ
Hironobu Iga

iOS 13 で system フォントが Times New Roman になることがある

UITextView などで system フォントを指定していると実行時に Times New Roman へ変わる事象。コードから明示的に UIFont を指定すると回避できます。

公開日

この記事は別サイトにも掲載しています。 https://iganin.hatenablog.com/entry/2019/11/10/214038

概要

タイトル通りです。バグレポートでも上がっているように UITextView などで system フォントを指定していた際に、アプリ実行時に Times New Roman フォントに変更されてしまう、という事象が発生しているようです。

NSAttributedStringKey.font に明示的に UIFont を指定しないと起きるのではないか等、原因に関して言及されていますが、はっきりとした理由はわからないと言うのが正直なところではないでしょうか。

事象と対応

私の場合ですが、Interface Builder 上で UITextView の plain の文字列に system フォントを設定していたところ、アプリ実行時に該当のエラーが発生しました。下記のようにコードから明示的に UIFont を指定することでバグを回避できています。

textView.font = UIFont.systemFont(ofSize: 16.0)

参考にネット上で見つけた関連した文書をまとめていますのでご参照ください。

所感

iOS 13 は本事象だけでなく様々なバグが発生しており、なかなか苦しいなというのが正直な感想です。。 アプリ内で文字フォントがおかしくなっていないか、念のため確認した方が良いかもしれません。

参考