ExifClip機能追加

その人(おそらく子供)の誕生日を設定して、写真の日付と合わせて、生後何ヶ月みたいな表示を追加しようかと。

生後の月数を計算するのに、日付ではなく月で表示しようとすると少し計算がやっかいかなぁと思っていて、その原因は、カレンダーにあるのだからと(30日と31日の月があるだけで、十分複雑)、NSCalendarのドキュメントを読んでいたら、まさしくそのための計算関数がありました。ただ、ケースによっては時間かかるよとも書いてあって、納得。

新しいプリンタ!

プリンターでちょっと印刷しようとしたら、「メンテナンスボックス(?)を交換してください。」と出てきて、調べて見たら、センドバックしての修理が必要とのこと・・・・

ずいぶん使っている(調べて見たら、2012年発売なので、少なくとも2012年末から5年以上使っている)プリンタなので、もう買い換えようといろいろ調べて見ました。

結構急いでいたので、すぐに買っちゃいました。

ヨドバシで購入したので、ドキュメントパックありなしとかよくわならないけど・・・・

良かった点
・まだわからない、インク代が低くなることが期待値

よくなかった点
・印刷物を受けるトレーの引き出しが手動 ー>前の機種も、しまうのは手動だったけど、自動で引き出してくれないと、遠くから印刷して辿り着くころに印刷が終わっているという運用ができない
・色が黒  ー> なんとなく、圧迫感が
 
それなりに、良いお買い物な気がしてます。

Setの初期化

以下のようなコードを書いてたんだけど、散々エラーって言われて困ってた。(動作は期待通りでした、偶然にも)

ずーとなやんでて、正解は以下のコードでした。

おそらく、渡されたListを使ってSetを作れと言われても、Listを要素とするSetなのか、与えられたListの要素のSetなのか、判断できないというのがその理由かと思う。

NSDatePickerの値変更を取得する

NSDatePickerDelegateみたいなものを探して見たところ、NSDatePickerCellDelegate を使う必要があるらしい。

実装すべきメソッドは、1つだけ

Swift4.1

SwiftからKVOしたくていろいろ調べてたんだけど、どうも補間関数がひょうじされなくて、?がでまくりでした。

原因は、Swift4.1から導入されたものっぽくて、AppCodeが追いついていなかっただけ見たい。

おそるべし、Swiftのアップデート

Disclosure-able view

画面が狭くなってきたので、設定したら、小さく変形できるビューが欲しくなってきた。

けど、AppKitの中には見つからないので、ちょっとGoogleしてみたところ、直接の解はないらしい。

以下を考慮する方がよいっぽい

  • サイズを覚えてほいて復元するときに参照する
  • アニメーションするとユーザーフレンドリー

動的にNSTableColumnを追加してBinding

動的に、カラムを追加して、そこにBindingを利用した値を表示させたいんだけど、一筋縄ではいかないらしい。

  • 該当するビューの配下のFieldを取得する
  • Fieldとビューをバインドする

なる手順が必要らしい。

IB上の”Table Cell View”は、該当Columnのビューに相当するらしく、そこからは、ObjectValueというキーを経由して参照できるらしい。

とりあえず、以下のように書いたらバインドできたんだけど、最初の1つのみ。

[objc]
let tableColumn = self.transactionListView.tableColumns[columnIndex]
if let account = MCAccount.namedAccount(db, name: tableColumn.identifier.rawValue) {
let newView = self.transactionListView.view(atColumn: self.transactionListView.tableColumns.count – 1, row: 0, makeIfNecessary: true)
let textField = newView!.subviews[0]
let keyPath = String.init(format: “objectValue.%@”, arguments: [account.name])
textField.bind(.value, to: newView, withKeyPath: keyPath)
[objc]

むりやりセルをバインドしてるんだけど、おそらく、マスター(?)みたいなものに対してBindしないといけないんじゃないかと思う。(けど、どこにも書いてない・・・・)

結局、func tableView(NSTableView, viewFor: NSTableColumn?, row: Int) のドキュメントをよく読むと書いてありました。
けど、気づかないよねこの説明。