2016-04-21 2 views
0

Я использую NSPopUpButton с заголовком и изображением. Ниже мой код:NSMenuItem цвет изображения становится темным, если выбрано

[self.popup addItemWithTitle:@"Parag"]; 
[[self.popup lastItem] setImage:[NSImage swatchWithColor:[NSColor greenColor] size:NSMakeSize(10.0, 10.0)]]; 

Creating NSImage from NSColor

@interface NSImage (ImageAdditions) 

+(NSImage *)swatchWithColor:(NSColor *)color size:(NSSize)size; 


@end 

@implementation NSImage (ImageAdditions) 

+(NSImage *)swatchWithColor:(NSColor *)color size:(NSSize)size 
{ 
    NSImage *image = [[NSImage alloc] initWithSize:size]; 
    [image lockFocus]; 
    [color drawSwatchInRect:NSMakeRect(0, 0, size.width, size.height)]; 
    [image unlockFocus]; 
    return image; 
} 

@end 

Цвет изображения становится темным, если я выбираю ниспадающее:

enter image description here

ответ

0

вы пытались использовать NSRectFill рисовать цвет к изображению? Насколько мне известно, drawSwatchInRect выполняет некоторые альфа-композиции.

@implementation NSImage (ImageAdditions) 

+(NSImage *)swatchWithColor:(NSColor *)color size:(NSSize)size 
{ 
    NSImage *image = [[NSImage alloc] initWithSize:size]; 
    [image lockFocus]; 
    [color set]; 
    NSRectFill(NSMakeRect(0, 0, size.width, size.height)); 
    [image unlockFocus]; 
    return image; 
} 

@end 
+0

Такая же проблема. Я думаю, что это из-за выбора слоя на всплывающей кнопке. –

Смежные вопросы