Obj.C

obj.C:クリックしたカラムの位置

表(配列)の中をクリックしたとき、どこをクリックしたのかわかれば、その行の情報にしたがったオブジェクトを表示できます。

今までプッシュボタンで該当する行のオブジェクト表示をしていました。「表示していた」と言っても、URL表示した内容を修正し、これをsaveしたファイルを表示していたに過ぎないのですが、前にも書いた通り、プッシュボタンをなくす予定でした。

そのためにはクリックしたカラム位置(インデクス)がわからないといけません。行位置はNSInteger row = [tableView selectedRow];で取れることはわかっていたのですが、カラム位置がわかりませんでした。

調べた結果、クリックした位置は、
NSInteger row = [tableView clickedRow];
NSInteger column = [tableView clickedColumn];
で取ることができました。これでプッシュボタンに頼らないでカラムに機能を割り当てられます。ほかの試した結果は、[tableView focusedColumn][tableView editedColumn][tableView selectedColumn]は-1が返ってきて、[tableView selectedColumnIndexes]は使いまちがいのせいかno indexesになりました。[tableView selectedColumn]だけは少し納得できていません。ついでながら、-(IBAction)execDoubleClick:(id)senderで受け取る必要があります。.xibでは、このIBActionをTable Viewと接続します。

  • 表のIDのカラムをクリックしたら、saveしているURLオブジェクトを表示する。
  • フォルダのカラムをクリックしたら、そのフォルダを閉じる。閉じられていれば開ける。ただし、この機能を実現するには、deselectRowが使えればいいのですが、もう少し調べる必要があります。もしかすると、オーバーヘッドになりますが、閉じた行をsaveする必要があるかもしれません。
  • フォルダ名とファイル名は、該当する配列のカラムのオブジェクトを直接修正すればいいのですが、いくつかのファイルのフォルダをまとめて修正したり、飛び飛びにファイルのフォルダを同じ名前にするようなケースは、マウスで選択した範囲に対する処理が必要になりそうです。
  • そうやって考えていくと、仕様が決まっていないためふらついているものがあり、そのために逡巡しているとも言えます。まだ、第2ステップの勉強段階ですから、それでも良しとしておきましょう。「自分に甘く、他人に厳しい」まあ、そんなものです。

IMG_3159

Categories: Obj.C, 技術

Tagged as: ,