我有一个位于应用程序窗口上方的IB中的NSView。我有一个我分配给NSView的NSView(AddSource)的子类。可可:NSView绘制在IBOutlets上的绘制
在awakeFromNib我实例化视图:
//add a new Add Source class
addSourceView = [[AddSource alloc] initWithFrame:NSMakeRect(0.0, 959.0, 307.0, 118.0)];
[[winMain contentView] addSubview:addSourceView];
在addSourceView的drawRect方法,我加入了白色背景的观点:
[[NSColor whiteColor] set];
NSRectFill(rect);
[self setNeedsDisplay:YES];//added this to see if it might solve the problem
在WinMain函数的内容查看我有一个NSButton,当点击幻灯片将addSourceView拖到窗口上:
NSRect addSourceViewFrame = [addSourceView frame];
addSourceViewFrame.origin.y = 841.0;
[[addSourceView animator] setFrame:addSourceViewFrame];
但似乎是如果应用程序正在绘制在我放置在IB中的NSView上的IBOutlets上。如果在IB中,我重新分配NSView,以便它在屏幕上显示应用程序启动时的一切正常,IBOutlets以及背景颜色。
我不知道为什么会这样。我之前完成了这个任务,没有任何问题。这次我必须做点不同的事情。
感谢您的任何帮助。
*注 - 三号屏幕捕获,当我说这是应用程序的外观打开时一样,那个时候我硬编码的NSView的Y位置。当它运行正常时,它应该以屏幕截图1的形式打开。
你似乎很困惑..在drawRect中随机尝试诸如-setNeedsDisplay之类的东西不是答案。你读过Hillegass书吗? – hooleyhoop
困惑,是的,但不是你的想法。我放下setNeedsDisplay来看看会发生什么。 – PruitIgoe
好的,我承认 - 我很困惑。从你的描述中不清楚你是使用IB创建你的AddSourceView还是-awakeFromNib – hooleyhoop