2017-07-06 8 views
1

MacOSの連絡先アプリケーションが自分のアプリでGroupRowsと何を模倣しようとしていますが、グループ行の上と下の行を取り除く方法を見つけることができません。私は独自のカスタムNSTableRowViewを追加しようとしましたが、問題なく背景色を変更できますが、それらの枠線を取り除く方法は考えられません。NSTableView - GroupRowスタイルを変更する

The lines above and below the D & L

This is from the contacts app

+0

'NSTableRowView'の' drawSeparatorInRect'を見てください – vadian

+0

私はこれをすべての方法で試しました。私の理解では、これは非groupRowsのセパレータにのみ適用されます。私は間違っているかもしれません;もしあなたがそれを働かせていれば、私は喜んで見ています。 – Daniel

+0

それは 'viewFor(TableColumnのでは動作しない場合は、次の行:。。'あなたは 'NSView'のサブクラスである何かを返すので、テキストとセパレータのカスタム描画を使用して独自のビューを作成することができます – vadian

答えて

0

サブクラスNSTableRowView。 tableViewに続いて

- (void)drawRect:(NSRect)dirtyRect { 
    if (!self.isGroupRow) 
     [super drawRect:dirtyRect]; 
} 

:サブクラスで

@interface CustomTableRowView : NSTableRowView 

@property (nonatomic, assign) BOOL isGroupRow; 

@end 

オーバーライドのdrawRect:そのようにのようなあなたのサブクラスでプロパティを追加rowViewForRowは、isGroupRowを設定します。

tableRow.isGroupRow = [self tableView:tableView isGroupRow:row]; 

これは削除されますグループ行の上下のセパレータ申し訳ありませんが私はスイフトを知らないが、おそらくそれをかなり簡単に翻訳することができます。それが役に立てば幸い!

関連する問題