Элемент NSTabView, добавляющий иконку в TabViewItem - PullRequest
1 голос
/ 28 марта 2011

Я вложил в NSTabView подкласс и добавил 5 TabViewItem, теперь я хотел добавить Icon вместе с заголовком в NSTabViewItem. Может кто-нибудь подсказать мне, как начать, я не получаю никакой документации, кроме

- (void)drawLabel:(BOOL)shouldTruncateLabel inRect:(NSRect)tabRect

Означает ли это, что если я переопределил этот метод, мне нужно нарисовать иконку и написать собственную строку,

Для настройки заголовка я использую следующий метод,

[pTabViewItem setLabel:pLabelTitle];

С уважением
Рохан

1 Ответ

3 голосов
/ 28 марта 2011

Never Mind, следующий код работает для меня,

- (void)drawLabel:(BOOL)shouldTruncateLabel inRect:(NSRect)tabRect{

    // do we have an image to draw
    NSImage *pImage = [pDelegate imageForCell];

    [[NSGraphicsContext currentContext] saveGraphicsState];
    NSAffineTransform* xform = [NSAffineTransform transform];
    [xform translateXBy:0.0 yBy: tabRect.size.height];
    [xform scaleXBy:1.0 yBy:-1.0];
    [xform concat]; 


    CGFloat x_Offset =0;
    if(pImage){
        [pImage drawInRect:NSMakeRect(tabRect.origin.x-8,-6,16, 16)fromRect:NSZeroRect
                 operation:NSCompositeSourceOver
                  fraction:1.0];
        x_Offset =  16;
    }
     [[NSGraphicsContext currentContext] restoreGraphicsState];

    [super drawLabel:shouldTruncateLabel inRect:tabRect];
}

Почему преобразование:
Изображение показывало инвертированное, поэтому мне нужно преобразовать,

Почему смещение: Даже после преобразованияМне нужно настроить положение так, чтобы оно выглядело как раз перед заголовком,

и, ребята, при установке заголовка,

добавьте пробел, чтобы заголовок не перекрывал изображение,я знаю, что это уродливый подход, но не мог найти другого быстрого способа сделать это, если я сам рисую текст, тогда мне нужно также позаботиться об усечении,

Спасибо тем, кто смотрел на вопросы иответ
С уважением
Рохан

...