Лучше создать подкласс NSTextFieldCell
, чтобы рисовать закругленные углы, чтобы сохранить функциональность NSTextField
, например:
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
NSBezierPath *betterBounds = [NSBezierPath bezierPathWithRoundedRect:cellFrame xRadius:CORNER_RADIUS yRadius:CORNER_RADIUS];
[betterBounds addClip];
[super drawWithFrame:cellFrame inView:controlView];
if (self.isBezeled) {
[betterBounds setLineWidth:2];
[[NSColor colorWithCalibratedRed:0.510 green:0.643 blue:0.804 alpha:1] setStroke];
[betterBounds stroke];
}
}
Получает хорошее округленное текстовое поле, которое отлично работает (если вы настроили его для рисованияпрямоугольная рамка в первую очередь, как минимум):