Arabirim Oluşturucusu'nda kurduğum NSTextFields'ın gölgeleri olmasını isterim. Bunu yapmak için işe yarayacak bir yol yaptım, ama doğru yol olup olmadığından emin değilim.Gölge ile NSTextField?
Yaptığım şey, NSTextFieldCell alt sınıfını aşağıdaki gibi subclass ve sonra alt sınıfımı IB'de NSTextField'ın hücre türü olarak ayarladı. Bu yaklaşımla ilgili bir problem var mı? Daha iyi bir yolu var mı?
#import "ShadowTextFieldCell.h"
static NSShadow *kShadow = nil;
@implementation ShadowTextFieldCell
+ (void)initialize
{
kShadow = [[NSShadow alloc] init];
[kShadow setShadowColor:[NSColor colorWithCalibratedWhite:0.f alpha:0.08f]];
[kShadow setShadowBlurRadius:0.f];
[kShadow setShadowOffset:NSMakeSize(0.f, -2.f)];
}
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
[kShadow set];
[super drawInteriorWithFrame:cellFrame inView:controlView];
}
@end
Tam olarak böyle yapmanız gerekiyor. Bu meraklısı, gölge-alan sınıfınızı bir IB eklentisi ile kendi paketine koymaktır, ve daha sonra IB düzeni sırasında gölgeyi sizin için gerçekleyebilir; Ancak bu şekilde overkill ve IB eklentileri (geçici olarak) xcode 4'te MIA'dır. – rgeorge