Swift

Swift:高さが可変な表の作り方?

まだ良くわかっていない問題がいくつかあります。

  • 表のカラムの高さを固定から可変に変更すると、cell basedからview basedに変えないとコンパイルエラーが消えません。しかし、view basedにしてしまうと、セルの表示ができなくなってしまいます。

調査は別途進めるとして、最悪対処方法がわからないとき、1cellだけのTable Viewにするか、text fieldにすることも検討します。
解決策:NSTextViewを使うことにしました。文字属性の変更もできるようです。たとえばフォントの変更の仕方は次の通り。
let font = NSFont(name: “Lucida Sans”, size: 18)
let attributes = NSDictionary(object: font!, forKey: NSFontAttributeName)
xbDescription!.typingAttributes = attributes as [NSObject : AnyObject]

注意点として初期化の仕方がよくわかりません。次の方法で文字列を削除できますが、これが正しいやり方かどうかよくわかりません。
xbDescription?.string = “”//初期化
xbDescription?.insertText(wDescription)//値を設定

  • 特定のセルだけバックグラウンドか文字列の色を変更したいのですが、やり方がわかりません。

NSTextViewをつかえば、なんらかの解決策が出てくるかもしれません。他方、NSTableViewの方はセル単位でなく行単位で色付けができればよくなります。調査を継続。

  • また、1行目が空いてしまう問題が発生しています。前回は、reloadで直したはずですが、今回はどうでしょう。

この問題は、前回フォルダの表示のときと同様に0行目は行が存在しているものとしてreplace、1行目以降はappendにすることで対処します。
解決策:同様の方法で問題は解決済み。

  • 値がnilだったとき、現在空白になっていますが、これはたとえばNAを入れるか、初期値を設定するか決めないと、空白のままだとわかりにくいです。

デフォルトを何にするかというマイナーな問題ですが、忘れないようにしないといけません。

  • ずっとあとの話になりますが、複数の写真を選択して、まとめて変更できる機能が必要とされるかもしれません。
  • まだEXIFの辞書の書き換え機能を実装していません。

読み込みと同じpathを指定して書き込みができない場合、読み込んだあとに写真ファイルを削除してから再度書き込みをすることを考えています。

  • EXIFのどの項目を編集可能とするか。修正日時はどれを更新するか(あるいは、更新しないか)。

EXIFの辞書が存在しても、該当するキーの値が存在しないと、つまりnilだとエラーになってしまいます。それで、ひとつひとつnilかどうかチェックしました。項目名の常数を配列に入れてループさせれば並べる必要がなかったのですが、数が少なかったので、とりあえず、並べました。

スクリーンショット 2015-05-06 12.34.57

Categories: Swift, 技術