gpt4 book ai didi

Cocoa——让一个简单的 NSImageView 工作

转载 作者:行者123 更新时间:2023-12-03 16:53:07 30 4
gpt4 key购买 nike

我很困惑为什么这段代码不显示任何图像:

在应用程序委托(delegate)中:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSRect rect = window.frame;
rect.origin.x = 0;
rect.origin.y = 0;
BlueImageView *blueImageView = [[BlueImageView alloc]initWithFrame:rect];
window.contentView = blueImageView; // also tried [window.contentView addSubview: blueImageView];
}

BlueImageView.h:

@interface BlueImageView : NSImageView {
}
@end

BlueImageView.m:

@implementation BlueImageView

- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self setImage: [NSImage imageNamed:@"imagefile.png"]];
NSAssert(self.image, @"");
NSLog (@"Initialized");
}
return self;
}

- (void)drawRect:(NSRect)dirtyRect {
}

@end

文件 imagefile.png 存在。 NSAssert 没有引发异常。 NSLog 正在触发。但窗口中没有显示任何图像。

最佳答案

调用drawRect:方法来绘制 View ,并且您的实现立即返回。要让 NSImageView 为您绘制图像,请在您的 drawRect: 实现中调用 [super drawRect:dirtyRect]; 。如果您不打算在drawRect:中进行任何其他绘制,只需删除该方法即可加快绘制速度。

关于Cocoa——让一个简单的 NSImageView 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4637338/

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