NSTableView で使用するカスタム ドラッグ アイコンを設定しようとしています。すべてが機能しているように見えますが、Quartz の経験が浅いために問題が発生しました。
- (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;
}
基本的に、現在ドラッグされている行数を示す NSString とともに、icon.png ファイルを 50% の不透明度でレンダリングします。私が見ている問題は、私のアイコンではなく、私の NSString が低い不透明度でレンダリングされることです。