Самый простой подход - просто установить свойства тени для слоя вида. Если у вас есть NSView * с именем view
, это было бы что-то вроде:
[[view layer] setShadowOpacity:0.5];
Установки непрозрачности тени на нечто большее, чем 0 будет сделать тень видна. Нарисованная тень будет похожа на альфа-канал представления, поэтому все, что вы рисуете в представлении, будет иметь тень. Есть несколько других атрибутов тени, которые вы можете установить, например, радиус размытия. Взгляните на номер CALayer reference page.
Если вы должны использовать NSShadow, то просто создать тень, прежде чем сделать свой рисунок:
- (void)drawRect:(NSRect)rect
{
NSShadow *shadow = [[[NSShadow alloc] init] autorelease];
[shadow setShadowBlurRadius:3.0];
[shadow setShadowOffset:NSMakeSize(0.0, 5.0)];
[shadow setShadowColor:[NSColor colorWithCalibratedWhite:0.0 alpha:0.6]];
[shadow set];
// continue with your drawing...
}
Расширьте свой вопрос, пожалуйста. Что вы хотите «бросить» тень? –