У меня есть следующий номер:
У меня есть подкласс NSTextFieldCell
. В этом подклассе я переопределяю метод drawWithFrame:
NSCell
и нарисую пользовательское полупрозрачное визуальное представление. Этот подкласс вставляется в NSTextField
, который вставлен в полупрозрачный вид. Следующая проблема заключалась в следующем: код рисования, наложенный друг на друга, т. Е. Какао непрерывно вызывает метод drawWithFrame:
и непрерывно накладывает текущие результаты на предыдущие результаты рисования. Как я могу избежать наложения друг на друга?
Есть код:
NSCell непрерывно перерисовывает
@interface MySubclass : NSTextFieldCell
...
@end
@implementation
...
// Only this methods overrided
- (void) drawWithFrame: (NSRect)cellFrame inView: (NSView *)controlView
{
[_someGradient drawInRect:cellFrame angle:90]; // gradient alpha is 0.5f
NSBezierPath* path = [NSBezierPath bezierPathWithRect:rect];
[path setClip];
NSShadow* shadow = [[NSShadow new] autorelease];
// setup shadow
[shadow set];
[path stroke];
[_someColor setStroke];
[path stroke];
[super drawWithFrame:cellFrame inView:controlView];
}
...
@end
Код, пожалуйста? Трудно догадаться, что происходит. – Abizern
Достаточно кода? Какой код вам нужен? – Lexandr
Этот пример короткого кода не показывает ничего, что могло бы вызвать постоянное перерисовку, поэтому либо это происходит в не показанном коде, либо за пределами реализации этой ячейки. –