我在为自定义的NSWindow制作动画时遇到了一些麻烦。
这是我的init方法:
- (CustomWindow *)initWithView:(NSView *)view
{
if ((self = [super initWithContentRect:contentRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO])) {
[[self contentView] addSubview:view];
[self setBackgroundColor:[NSColor darkGrayColor]];
[self setMovableByWindowBackground:YES];
[self setExcludedFromWindowsMenu:YES];
[self setOpaque:NO];
[self setHasShadow:YES];
[self setDelegate:self];
}
return self;
}
当我调用[self setFrame:originalFrame display:NO animate:YES];
时,会有一个与动画持续时间相对应的延迟,但动画本身不会发生。
我认为这是因为我使用的是无边框窗口?
答案 0 :(得分:1)
只需使用:[self setFrame:originalFrame display:YES animate:YES];
答案 1 :(得分:0)
猜猜您的窗口已调整大小,但查看您添加到内容视图,请不要。如果您只有一个视图,则代替:
[[self contentView] addSubview:view];
使用:
[self setContentView:view];