私はNSTableViewのデリゲートに- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row
を実装しました。一番左の列の幅が変わるので、テーブルの行の高さのサイズを変更します。問題は、サイズ変更中にその列だけが再描画されること(およびサイズ変更中に表示される列)です。NSTableViewでNSTableColumnのサイズを変更して強制的に再描画しますか?
この結果、サイズ変更後にファンキーなビジュアルが表示されます。私が望むのは、ユーザーが列のサイズを変更している間に、完全に再描画するようにテーブルビューに指示する方法です。今私ができることは、その列のサイズ変更が完了した後にsetNeedsDisplay
に電話することです。
私はそれをドキュメントで見ましたが、無限ループを引き起こすため、 ' - (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row'から呼び出すことはできません。 – Dov
@Dov更新提案。 – Richard
カスタム列の 'setWidth:'オーバーライドの中から 'noteHeightOfRowsWithIndexesChanged:'と 'setNeedsDisplay'を呼び出そうとしましたが、どちらも違いがありませんでした。具体的には、 'setWidth:'で行うべきことは今何ですか?これをより簡単にすることができるのは、アプリケーションでは、1つの行の高さが変更されたときに、それらがすべて通常行うことです。それは仮定することができます。 – Dov