Я пытаюсь установить пользовательский значок перетаскивания для использования в NSTableView. Кажется, все работает, но я столкнулся с проблемой из-за моей неопытности с Кварцем.Прозрачность NSImage
- (NSImage *)dragImageForRowsWithIndexes:(NSIndexSet *)dragRows tableColumns:(NSArray *)tableColumns event:(NSEvent *)dragEvent offset:(NSPointPointer)dragImageOffset
{
NSImage *dragImage = [NSImage imageNamed:@"icon.png"];
NSString *count = [NSString stringWithFormat:@"%d", [dragRows count]];
[dragImage lockFocus];
[dragImage compositeToPoint:NSZeroPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:0.5];
[count drawAtPoint:NSZeroPoint withAttributes:nil];
[dragImage unlockFocus];
return dragImage;
}
По сути то, что я ищу сделать, это вынести мой файл icon.png с 50% непрозрачностью вместе с NSString, который показывает количество строк в настоящее время тащило. Проблема, которую я вижу, в том, что мой NSString отображает с низкой непрозрачностью, но не мой значок.
Это имеет смысл. Спасибо вам. – ndg
Кроме того, ['composToPoint: fromRect: operation: fraction:' устарел] (http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSImage_Class/DeprecationAppendix/AppendixADeprecatedAPI.html# // apple_ref/ОКК/instm/NSImage/compositeToPoint: fromRect: операции: фракция :). Используйте 'drawAtPoint: fromRect: operation: fraction:' вместо этого. –
Хороший улов; Я это скрыл. – Wevah