NSTextView округленная граница / обводка в какао - PullRequest
0 голосов
/ 16 февраля 2010

Я создаю подкласс NSTextView и перезаписываю метод drawRect для того, чтобы нарисовать NSBezierPathWithRoundedRect вокруг текстового представления, однако - поскольку оно имеет закругленные края, они мешают тексту в текстовом представлении.

Есть ли способ применить какое-либо поле или отступ по всей области ввода текста NSTextView, чтобы она была более вставленной и удаленной от закругленных краев? Или лучше использовать NSTextView внутри NSView и вместо этого применять округленный штрих к NSView?

- (void)drawRect:(NSRect)dirtyRect {
// Drawing code here.
[super drawRect:dirtyRect];

NSRect rect = [self bounds];
NSRect newRect = NSMakeRect(rect.origin.x+2, rect.origin.y+2, rect.size.width-3, rect.size.height-3);

NSBezierPath *textViewSurround = [NSBezierPath bezierPathWithRoundedRect:newRect xRadius:10 yRadius:10];
[textViewSurround setLineWidth:2.0];
[[NSColor whiteColor] set];
[textViewSurround stroke];

}

Ответы [ 2 ]

0 голосов
/ 15 января 2015

Вы можете попробовать установить поля для стиля абзаца всей строки textView.

Или, может быть, поместить текстовое представление в более крупное родительское представление с закругленными углами и рамкой?

0 голосов
/ 16 февраля 2010

Я думаю -setTextContainerInset: делает то, что вам нужно. В качестве альтернативы вы не должны вызывать super в своей реализации -drawRect: и рисовать текстовый контейнер самостоятельно.

...