Avatar
下記のようにNSTableHeaderCell を自作のサブクラスに差し替えると、意味不明な deinit が呼び出されてクラッシュするんですが、NSTableHeaderCell の差し替え方について知っている方が居たら助けてほしいです・・・ override func viewDidLoad() { super.viewDidLoad() for column in tableView.tableColumns { let headerCell = MyHeaderCell.init(textCell: column.title) column.headerCell = headerCell } } 再現リポジトリです。実行するだけでクラッシュします。 クラッシュしない場合はテーブルのカラムを思いっきり左右にドラッグすると死にます。 https://github.com/omochi/nstableheadercell-bug (edited)
Contribute to nstableheadercell-bug development by creating an account on GitHub.
2:29 AM
2017-11-21 11:23:53.295486+0900 nstableheadercellbug[23493:18211887] Unknown Window class (null) in Interface Builder file, creating generic Window instead [Cat(0x00006100000490c0)::init] [MyHeaderCell(0x00006100000a0120)::init(textCell:)] [Cat(0x00006100000492d0)::init] [MyHeaderCell(0x00006100000a13e0)::init(textCell:)] [Cat(0x0000610000049360)::init] [MyHeaderCell(0x00006100000a14a0)::init(textCell:)] [MyHeaderCell(0x00006180000a6120)::deinit] [Cat(0x0000610000049360)::deinit] [MyHeaderCell(0x00006080000a55e0)::deinit]
2:30 AM
意味不明なdeinitです。deinitされてる self のアドレスが謎のものに。
2:34 AM
クラッシュさせるために Cat をプロパティにもたせているんですけど、これをプロパティから除去するとクラッシュはしなくなります。
2:35 AM
でも、ちょこちょこdeinitが呼ばれて、カラムの数より多い回数のdeinitが呼ばれる・・・ default column: 0x00006080000a0ea0 [MyHeaderCell(0x00006180000a23a0)::init(textCell:)] default column: 0x00006080000a1020 [MyHeaderCell(0x00006180000a21c0)::init(textCell:)] default column: 0x00006080000a11a0 [MyHeaderCell(0x00006180000a2820)::init(textCell:)] [MyHeaderCell(0x00006080000a20a0)::deinit] [MyHeaderCell(0x00006080000a2460)::deinit] [MyHeaderCell(0x00006100000a2b20)::deinit] [MyHeaderCell(0x00006100000a3360)::deinit] [MyHeaderCell(0x00006100000a3240)::deinit] [MyHeaderCell(0x00006080000a4140)::deinit]
2:39 AM
headerCellを自作インスタンスに差し替える部分については、下記などを参考にしました。(38点の回答) https://stackoverflow.com/questions/4753282/modifying-table-headers-on-mac (edited)
I've been able to find tutorials on modifying the table headers on iOS using UITableView - but havent been able to find any info for mac development. Does anyone know of any good resources / steps to