Swift

Swift:NSTableViewの行(row)削除

NSTableViewは配列Dictionaryを制御すれば追加・挿入・削除等、やりたいことは一通りできることがわかりました。ソートだけはまだなのですが、Treeで制御すれば不要なので省略します。

Yosemiteがリリースされることを思い出し、昨日の朝までウダウダやっていたので、昼間起きているのがきついでした。それで、昨日はSwiftに触らずじまいで終わりました。

表の行をどのようにして削除するのか、今朝、もう一度できなかったことが何だったか思い出してみて、やはり、配列Dictionaryに値を入れて表示させるのだから、これを削除するのが妥当という考えに落ち着きました。

それで、peopleArray.removeAtIndex(0)で削除すると、みごとにOKになりました。頭の中を整理すると次のようなことになります。

  • NSTableViewの表操作(追加・挿入・削除等)は、①配列を変更する、②NSTableViewに反映する(手順は少ない)。
  • 配列はDictionaryとする。1行は各カラムのidentifierで紐付けて構成する。
  • 各カラムを([identifier,値])でsetにして1行を作り、appendもしくは+=追加する。
    +=の方がわかりやすい。
  • 特定の行の前に挿入したいときは、insertを使う。
  • 削除には、いくつか方法がある。
  • これでNSTableViewはほぼOK。

ソースコードはここにあります。

注意:削除はメッセージでもわかるようにしていますが、『削除したいとき【index or last or … or all】のいずれかをfirstnameに入力する』必要があります。

スクリーンショット 2014-07-26 21.28.00

スクリーンショット 2014-07-26 23.07.35

Categories: Swift, 技術