2014-02-24 29 views
4

只要我在滚动视图中嵌入我的自定义NSView,我的自定义视图中就没有画任何东西。简单地在NSScrollView中嵌入自定义的NSView会导致它被终止

为了复制这个问题,我创建了一个香草可可应用程序。我分类了NSView,和它的drawRect处理程序,我做了一些简单的像红色fillRect。我确认此按预期工作:

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

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

返回IB,我点击我的自定义视图,然后进入菜单编辑>嵌入>滚动查看

在我看来,不再有一个红色的矩形。我已验证我的drawRect不再被调用。

什么给?

我想我会碰到一个解决方案here,但它没有任何帮助。

看起来很简单。

运行Xcode 5.0.2 & OS10.9.1。

回答

5

固定......我不得不这样的事情添加到我的自定义视图:

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

这也适用于使用斯威夫特(使用即兴大尺寸)的Xcode 6 BETA4(10.9.4)

func intrinsicContentSize() ->NSSize { 
    return NSMakeSize(2000,2000) 
} 
相关问题