1

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

4

1 に答える 1

2

テーブルビューでこれを試したことはありませんが、他のコントロールで試しました。

NSTableView のサブクラス (またはクリップしたいビュー/コントロール)

  1. オーバーライドdrawRect:
  2. 必要な形状で NSBezierPath を作成します (おそらくappendBezierPathWithRoundedRect:xRadius:yRadius:、ビューの境界をサイズとして使用することを忘れないでください)。
  3. パスにaddClipメッセージを送信して、その形状をビューのクリッピング パスに追加します
  4. スーパーに電話するdrawRect:

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

Apple の Xcode へようこそウィンドウを見ると、上部にカスタム ヘッダーを描画し、下部にテキスト ブロックを描画することで回避できるため、テーブル ビュー自体を丸める必要はありません。あなたがそのようなことをすることができれば、私はそうします。

于 2010-12-12T01:49:35.887 に答える