0

角が丸い NSTableView を作成しようとしています (iOS のGroupedテーブル ビューのスタイルによく似ています)。しかし、これは非常に困難であることが証明されています。

私は使用しようとしましたCALayers

// ...
self.wantsLayer = YES;
self.layer.masksToBounds = YES;
self.layer.cornerRadius = 10.0;
// ...

NSViewサブクラスでは機能しますが、 NSTableVieworでは機能しませんNSScrollView

また、をオーバーライドdrawRect:して bezierPaths を使用しようとしました。

NSBezierPath *rectPath = [NSBezierPath bezierPathWithRect: self.bounds];
[rectPath appendBezierPathWithRoundedRect: self.bounds xRadius: 10 yRadius: 10];
[rectPath addClip];
[super drawRect: rectPath.bounds];

NSViewこのメソッドはs でテストしていませんが、s ではそのままでは機能しませんNSTableView

以前、StackOverflow でいくつかの「重複した」質問を見たことがありますが、満足のいく解決策を提供できませんでした。

NSTableView の丸みを帯びた角には「正しい」答えが 1 つあります。この質問は私に s を試すように促しましたNSBezierPathが、私が言ったように、私はその方法を機能させることができないようです.

NSTableView の丸みを帯びた角は NSScrollView のサブクラス化を示唆していますが、それは同様にCALayers.

どんな提案でも大歓迎です。自分のためだけでなく、後世のためにも明確な答えを出したい。

4

1 に答える 1

2

私も角を丸くするという同じ問題に直面していますが、答えが得られませんでした。

最後に、別の方法でそれを行いました.テーブルの背景を透明にし、テーブルビューのすぐ後ろに4ピクセルの丸い角(表示したい)の.pngファイルの画像を追加しました.

このようにして、角が丸いテーブルを表示しました。この解決策がうまくいくことを願っています。

于 2012-02-20T11:25:05.660 に答える