角が丸い NSTableView を作成しようとしています (iOS のGrouped
テーブル ビューのスタイルによく似ています)。しかし、これは非常に困難であることが証明されています。
私は使用しようとしましたCALayers
:
// ...
self.wantsLayer = YES;
self.layer.masksToBounds = YES;
self.layer.cornerRadius = 10.0;
// ...
NSView
サブクラスでは機能しますが、 NSTableView
orでは機能しません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
.
どんな提案でも大歓迎です。自分のためだけでなく、後世のためにも明確な答えを出したい。