くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

【OSXアプリ】swiftのNSTableViewの使い方で詰まった。【macアプリ】

せっかくswiftを勉強したので何か作ろうと思ったのだが、そもそも自分AndroidだしiPhoneアプリは割りとありきたりだなーと思ったのでOSXアプリを作ってみることにした。

mask.hatenadiary.com

mask.hatenadiary.com


というわけでNSTableViewに表示したいデータがあったのだが、なかなかうまくいかない。

f:id:mask0702:20150920230248p:plain

いろいろと調べたけど、分かりづらかったのでメモがてらに共有。

何がわかりづらかったか。

とりあえず、なんでかわからないけどNSTableViewにデータを挿入するには以下の二つの関数が必要らしい。

func numberOfRowsInTableView(aTableView: NSTableView) -> Int { ... }

func tableView(aTableView: NSTableView,
        objectValueForTableColumn aTableColumn: NSTableColumn?,
        row rowIndex: Int) -> AnyObject? 
{ ... }

qiita.com

初見組からすると、そんな説明どこにあったん?みたいな。まあ公式ドキュメントにnumberOfRowsInTableViewは必要やでみたいなの書いてはあるんだけど。
NSTableView Class Reference

で、まあその通りに実装してもうまく表示されない。

なんで?ってなっていろいろ探したらqiita.com

2. Identity Inspectorで、1列目のIdentifierをTitle、2列目のIdentifierをDurationに設定します。いくつかのコンポーネントから構成されていますから、Outlineで間違えないように選んでください。
3. OutlineでTable Viewを選択して、Attribute Inspectorを開いて、Content ModeをCell Basedにします。
4. TableViewを選択したまま、Connections Inspectorを開いて dataSourceとdelegateとViewControllerを接続します。

みたいな記述が。何それとなると同時にIdetity Inspector? Attribute Inspectorとは??? ってなる。

で偶然外国人の方が動画で実践してるの見つけて、「あ、これのことなのね。」みたいな。www.veasoftware.com

OSX開発は割りと日本語も英語も文献が簡単にヒットしずらくて難しいなと思いました。


次世代iOS、OS XプログラマーのためのSwift言語入門

次世代iOS、OS XプログラマーのためのSwift言語入門