Swift

Swift:cell毎に色付けをするには?

各cellの制御をするには、cell basedでなく、view basedを使います。

tableViewでview basedを選択すると、tableViewCellが各cellに配置されます。これにより、各cellに固有のフォントや色付けができそうです。SwiftでOS Xアプリケーションのプログラミング – 表に何か必要なことが書いてありそうです。読み解くには、自分の実力では相当時間がかかりそうですが、サンプルプログラムを作って前に進められればと考えています。

  • これが実現できると、作成した表を検索した結果、特定の文字列に色付けしたり、ハイライトできます(多分)。
  • Drag and Dropも実装できれば、変なインターフェイスを準備しなくてすみます。
  • それに、cell basedでなく、view basedで開発するべきというのがAppleの推奨と知り、あれあれという感じです。OS X NSTableView Tutorialも役立ちそうなので、とりあえずメモします。
  • Getting Started With OS X and Swift Tutorial: Part 1/3にはソースコードが出ています。

評価状況:

  • tableViewのdelegateの中でvar cellView: NSTableCellView = tableView.makeViewWithIdentifier(tableColumn!.identifier, owner: self) as! NSTableCellViewによりCellViewを作り、ここに該当する文字列なり画像を入れて返り値とすればいいようですね。たとえば、(<NSTableCellView: 0x618000180b60>, “🎾”, 0, “fcons01”)のような形。
  • cell basedとの大きな違いは、値を設定したCellViewを返すこと。
  • このあと、tableViewに反映されません。原因を調査中です。

調査のやり直し:

  • Getting Started With OS X and Swift Tutorial: Part 1/3にはソースコードをリファレンスにして、どこが悪いか調べることにします。ちなみにXcode7では、コンパイルエラーが2箇所で発生します。いずれも!を取り除いて、!を付け直せばOKになります(Xcodeが自動修正してくれます)。
  • storyboardか.xibの違いで何かあるのでしょうか?

Categories: Swift, 技術