gpt4 book ai didi

cocoa - NSPopUpButton 事件图像

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

我想创建一个带有自定义事件图像的 NSPopUpButton。我有两张图像,一张用于非事件图像,另一张用于事件图像。在界面生成器中,我设置了图像和 Alt。 NSPopUpButton 的图像。图像显示正确,但当我单击按钮时,它显示标准的深色按钮状态而不是 Alt。图片。

这是界面构建器面板的屏幕截图:http://cl.ly/0D2c0Y2y0f1Z462d311X

如何设置 NSPopUpButton 以在单击时显示替代图像?

最佳答案

Apple Dev 论坛的一位开发人员为我指明了正确的方向:https://devforums.apple.com/message/364824

这是我想出的作为 NSPopUpButtonCell 子类的内容,它尊重 IB 的备用图像:

- (void)drawImageWithFrame:(NSRect)cellRect inView:(NSView *)controlView{
NSImage *image = self.image;
if([self isHighlighted] && self.alternateImage){
image = self.alternateImage;
}

//TODO: respect -(NSCellImagePosition)imagePosition
NSRect imageRect = NSZeroRect;
imageRect.origin.y = (CGFloat)round(cellRect.size.height*0.5f-image.size.height*0.5f);
imageRect.origin.x = (CGFloat)round(cellRect.size.width*0.5f-image.size.width*0.5f);
imageRect.size = image.size;

[image drawInRect:imageRect
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1.0f
respectFlipped:YES
hints:nil];
}

关于cocoa - NSPopUpButton 事件图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4644612/

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