Tag: カラム

Swift:view basedのカラムデータの抽出

苦戦中。

それも、かなり苦戦しています。

  • ひとつは、bindしないといけないかどうか?
    ➡️bindの問題は、bindするとeditableにしたカラムが選択できなくなることです。
  • もうひとつは、editableにしたカラムデータを編集したとき、これをどのようにして取り出せばいいのか?
    ➡️今のところ、何をやってもダメ。ヒントがありません。

カラムのデータの取り出し方は次の通りです。クリックしたカラムのrowとcolumnを記憶し、viewAtColumnをNSTableCellViewでキャストし、objectValueをStringで抽出します(説明の仕方はこれでよろしいでしょうか?)

@IBOutlet var   xTableViewNSTableView?

let wA = (xTableView?.viewAtColumn(A.rcColumn, row: A.rcRow, makeIfNecessary:false) as! NSTableCellView).objectValue as! String

今、やっとここまで来ました。解決に至っていません。

Swift:カラムサイズの計算ができました!

テキストとフォントサイズからカラムサイズを計算することができました。

結論は、前に書いたNSAttributedStringに次の2行足すだけでした(ここでは、3行にしていますけれど)。返り値は、CGFloatでテキストの描画サイズを返します。

let wConstraintsSize = CGSizeMake(CGFloat.max, CGFloat.max)
let textSize = pString.boundingRectWithSize(wConstraintsSize,
     options:NSStringDrawingOptions.UsesLineFragmentOrigin, attributes:wAttribute, context:nil)

Screenshot 2016-01-31 23.43.50

これで残る機能追加は検索だけになりました。

参考:

追記:朝方、検索について調べました。文字列から指定された用語を検索するメソッドはすでに書いていることがわかりました。すっかり忘れていました。このあと、どう実装するかですが、対象用語の背景を色付けすればいいことに気づきました。背景色色付けは、NSAttributedStringを拡張すればいいのではないかと思っています。あとはリセットの仕方。次の新しいアクションが起きたときにリセットできれば、変なボタンを追加しないですみます。この点はもう少し考える必要がありそうです。