2010-12-11 24 views
1

丸いボックスの背景を描画するNSBoxに似たカスタムビューのサブクラスがあります。問題は、ボックスビューにNSTableViewのようなビューを配置すると、丸みのあるコーナーにクリップされないということです。 NSTableViewとその親スクロールビューの角を丸める方法はありますか?NSTableViewの角を丸くした

答えて

2

私はテーブルビューでこれを試していませんが、他のコントロールを持っています。 NSTableViewのサブクラスで

  1. オーバーライドdrawRect:
  2. は、あなたはおそらくappendBezierPathWithRoundedRect:xRadius:yRadius:同じようにビューの境界を使用することを忘れないでください(たい形状とNSBezierPathを作成(または任意の表示/クリップする制御)サイズ)
  3. ビューのクリッピングパスに
  4. コールスーパーのdrawRect:
  5. をその形状を追加し、パスに addClipメッセージを送ります

テーブルビューにヘッダーがある場合は、NSTableHeaderViewをサブクラス化して上部の角をクリップする必要があります。スクロールバーがある場合は、特定のコーナーのみをクリップする以外は、同じことをしなければならない場合があります。うまくいけばスクロールバーがないと思うので、スクロールバーはありません。基本的には、その部分を描画するビュー/コントロールをクリップしたい場合、親をクリッピングしてもサブビューがクリップされません。

アップルの「Xcodeへようこそ」ウィンドウを見ると、上部にカスタムヘッダーを、下部にテキストブロックを描くことで、テーブルビュー自体を丸める必要がなくなります。あなたが私のような何かをすることができれば。

+1

私はこれをやる必要がないように私のデザインを再考しました。 – indragie

+0

@indragie何をやったのですか? –

関連する問題