gpt4 book ai didi

cocoa - 使用模板图像的 HUD 按钮

转载 作者:行者123 更新时间:2023-12-03 16:26:13 25 4
gpt4 key购买 nike

我正在我的应用程序中构建一个半透明 float HUD 窗口,其目的是看起来像“快速查看 HUD”窗口,特别是使用“进入/退出”全屏图像。 Cocoa 提供了 NSEnterFullScreenTemplate(和 NSExitFullScreenTemplate)模板,用于此目的,并且在有边框的按钮上工作良好。

一旦我删除边框并将按钮放在深色背景上,它就会保持深灰色,并且很难看到。我想把它变成白色,就像快速查看一样。有没有内置的方法可以做到这一点,或者我必须自己缩放和着色图像?

最佳答案

我最终编写了一个 NSImage 类别类方法,该方法返回所需尺寸和所需颜色的模板图像(基本上是我自己做的,因为我不认为 API 确实提供了执行此操作的方法)。

+(NSImage *)templateImage:(NSString *)templateName
withColor:(NSColor *)tint
andSize:(CGSize)targetSize
{
NSImage *template = [NSImage imageNamed:templateName];
NSSize size = (CGSizeEqualToSize(targetSize, CGSizeZero)
? [template size]
: targetSize);
NSRect imageBounds = NSMakeRect(0, 0, size.width, size.height);

NSImage *copiedImage = [template copy];
[copiedImage setTemplate:NO];
[copiedImage setSize:size];

[copiedImage lockFocus];

[tint set];
NSRectFillUsingOperation(imageBounds, NSCompositeSourceAtop);

[copiedImage unlockFocus];

return [copiedImage autorelease];
}

关于cocoa - 使用模板图像的 HUD 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com