gpt4 book ai didi

cocoa - 子类 NSView 以更改背景颜色

转载 作者:行者123 更新时间:2023-12-03 17:00:01 25 4
gpt4 key购买 nike

我想更改自定义 View 的背景颜色。我有一个类似 NSView 的子类:

#import <Cocoa/Cocoa.h>
@interface CustomBGView : NSView {
NSColor myColor;
} @end

和 .m

  @implementation CustomBGView

- (void)drawRect:(NSRect)rect
{
[myColor set];
NSRectFill([self bounds]);
}

- (void)changeColor:(NSColor*) aColor
{
myColor = aColor;
}

changeColor 方法用于在应用程序 Controller 中更改颜色。我还为 IB 中绑定(bind)的名为 myView 的自定义 View 定义了一个 IBOutlet。

问题是当我在应用程序 Controller 中使用changeColor时,如下所示:

[myView changeColor: [NSColor colorWithCalibratedRed:0.5 green:0.5 blue:0.5 alpha:1.0]];

存在“程序接收信号:“EXC_BAD_ACCESS”。如果我使用这样的东西:

[myView changeColor: [NSColor whiteColor]];

工作正常。

问题出在哪里?提前致谢

<小时/>

谢谢查克!现在“保留”效果很好。

为什么它在一种情况下无需保留即可工作([myView changeColor: [NSColor WhiteColor]];),而在另一种情况下则不然???

最佳答案

您将 changeColor: 的参数存储在实例变量中,但不保留它,因此您不拥有它,并且它认为它可以消失。

关于cocoa - 子类 NSView 以更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781326/

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