一旦我将自定义 NSView 嵌入到滚动 View 中,我的自定义 View 中就不会绘制任何内容。

为了重现这个问题,我创建了一个 vanilla Cocoa 应用程序。我继承了 NSView 及其 drawRect 处理程序,我做了一些简单的事情,比如一个红色的 fillRect 。我验证这按预期工作:

- (void)drawRect:(NSRect)dirtyRect
{
    [super drawRect:dirtyRect];

    [[NSColor redColor] set];
    [NSBezierPath fillRect:dirtyRect];
    // Drawing code here.
}

回到 IB,我单击我的自定义 View ,然后转到菜单 Editor > Embed In > Scroll View

在我看来不再有红色矩形。我已经确认不再调用我的 drawRect

是什么赋予了?

我以为我会遇到一个解决方案 here ,但它没有帮助。

看起来如此简单。

运行 Xcode 5.0.2 和 OS10.9.1。

最佳答案

已修复...我不得不在我的自定义 View 中添加这样的内容:

- (NSSize)intrinsicContentSize
{
    return NSMakeSize(960,540);
}

关于nsview - 只需在 NSScrollView 中嵌入自定义 NSView 即可杀死它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21977565/

10-13 08:08