Obj.C

obj.C:残る問題はフォント

まだ、フォルダの開閉は実装していませんが、一通りの主要機能はOKになりました。残る大物は、ファイル切り替えでフォントが崩れる問題です。

基本的な機能は、問題なく動いています。

  • URLから読み込み➡修正➡ファイル名をつけてsave
  • いくつかのファイルの作成
  • アプリの終了➡再起動➡restore処理➡前回アプリ終了時のファイルを再表示
  • saveした各ファイルへの表示切り替え
  • 同じファイルで文字列を修正➡save/再表示

スクリーンショット 2014-03-24 21.38.09

スクリーンショット 2014-03-24 21.38.21

問題: 本文の文字列を修正すると、最後の文字のフォント情報(特に文字サイズ)が以降の文字列に対して不適切に適用されてしまいます。

スクリーンショット 2014-03-24 21.38.42

スクリーンショット 2014-03-24 21.38.54

問題となるケースのまとめ:

  • ファイルの作成/文字列の修正➡既存のファイルを表示・・・・NG
  • ファイルの作成/文字列の修正➡新しいファイルにsave・・・・OK

もう少し詳しく調べると、

  • 同じファイル内なら、修正➡saveしても問題がない。
  • 文字列を修正➡新しいファイルにsave(ファイルの新規作成)しても問題がない。
  • 文字列を修正➡既存のファイルに飛んだときに問題発生。

原因の推定と対策の検討

  • アプリの再起動後の再表示が問題ないとすれば、アプリ後の再表示野処理とファイル名をダブルクリックしたときの処理の差分に問題があることになります。
  • アルゴリズムは、文字列の修正(NSTextView)➡ダブルクリック➡現在のファイル情報のsave➡新しいファイルの表示の流れになります。awakeFromNibからの処理との差分は初期処理があります。
    ということは、awakeFromNibの処理を全部切り出してそれを呼ぶのが良さそうです。そのためには、その前に新しいファイルの位置情報を書き込む必要があります。まず、この方法を試してみることにします。

Categories: Obj.C, 技術

Tagged as: