如何让NSView不剪辑其边界区域?

时间:2012-09-13 06:03:01

标签: objective-c macos cocoa nsview appkit

我在Xcode上为OS X创建了一个空的Cocoa应用程序,并添加了:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    self.view = [[NSView alloc] initWithFrame:NSMakeRect(100, 100, 200, 200)];
    self.view.wantsLayer = YES;
    self.view.layer = [CALayer layer];
    self.view.layer.backgroundColor = [[NSColor yellowColor] CGColor];
    self.view.layer.anchorPoint = CGPointMake(0.5, 0.5);
    self.view.layer.transform = CATransform3DMakeRotation(30 * M_PI / 180, 1, 1, 1);

    [self.window.contentView addSubview:self.view];
}

但是旋转图层的背景被视图的边界区域剪切:

enter image description here

我认为自从OS X和iOS的某个版本以后,该视图不会剪辑其子视图的内容并显示内部和外部的所有内容?在iOS上,我确实看到了这种行为,但我想知道它为什么会出现这种情况以及如何让一切都显示出来? (我已经在Mountain Lion上使用了最新的Xcode 4.4.1)。

(注意:如果你尝试上面的代码,你将需要链接到Quartz Core,并可能导入石英核心标题,虽然我想知道为什么我没有导入标题并且它仍然完美编译)

0 个答案:

没有答案