[英]Set the border of a subclassed NSTableCellView
如這篇文章的標題中所述,我想設置在基於視圖的NSTableView
使用的子類NSTableCellView
的邊框(顏色和寬度)。 我嘗試了以下
self.layer.borderColor = [[NSColor greenColor] CGColor];
self.layer.borderWidth = 3.0;
我將代碼放在initWithCoder
和awakeFromNib
但沒有得到期望的結果。 在drawRect
-Method中可以更改backgroundColor
。 有人可以指出我正確的方向嗎?
謝謝
編輯
這是我使用NSFrameRect
解決方案
- (void)drawRect:(NSRect)dirtyRect
{
[NSGraphicsContext saveGraphicsState];
[[NSColor lightGrayColor]set];
NSFrameRect([self bounds]);
[NSGraphicsContext restoreGraphicsState];
}
默認情況下,OS X上的視圖不分層支持。 您首先需要setWantsLayer:是
但是,如果您使用的是drawRect:您可以只使用NSFrameRect()或類似函數之一,或者在單元格視圖子類中使用NSBezierPath進行繪制。 但是,請記住,通常行視圖在基於視圖的表中進行背景繪制。
聽起來您還需要學習一些有關可可繪制的知識。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.