Objective c 单击红色关闭按钮时,如何以及在何处更改关闭NSPanel的动画?
我在NSWindowController中提供了一个NSPanel。当我按下NSPanel标题栏的红色小按钮时,我想用不同的动画改变它消失的方式。我该怎么做?是否有类似-(void)CloseButton Pressed的东西我可以更改。因为NSV窗口的-(void)关闭没有按我所希望的那样工作。当我展示它时,我是这样做的:Objective c 单击红色关闭按钮时,如何以及在何处更改关闭NSPanel的动画?,objective-c,animated,nspanel,Objective C,Animated,Nspanel,我在NSWindowController中提供了一个NSPanel。当我按下NSPanel标题栏的红色小按钮时,我想用不同的动画改变它消失的方式。我该怎么做?是否有类似-(void)CloseButton Pressed的东西我可以更改。因为NSV窗口的-(void)关闭没有按我所希望的那样工作。当我展示它时,我是这样做的: [self.imagePanelController.previewPanel setFrame:NSRectFromCGRect(CGRectMake(self.wind
[self.imagePanelController.previewPanel setFrame:NSRectFromCGRect(CGRectMake(self.window.frame.origin.x + self.window.frame.size.width/4 , self.window.frame.origin.y + self.bounds.size.height/4, self.ciImage.extent.size.width, self.ciImage.extent.size.height)) display:YES animate:YES];
我想设置一个新的帧再次和动画,当按下面板关闭按钮。有什么想法吗?所以我自己就想出来了,它对我来说很有效,我不知道这是否是最好的解决方案,但它正是我所需要的。如果有人在寻找类似的东西,我就发这个 我正在获取NSPanel的close(关闭)按钮,并在其上执行一个操作,以完全按照打开面板的动画方式关闭面板
NSButton *closeButton = [self.imagePanelController.previewPanel standardWindowButton:NSWindowCloseButton];
[closeButton setTarget:self];
[closeButton setAction:@selector(closePanel)];
- (void)closePanel
{
int calcX = self.window.frame.size.width - self.bounds.size.width;
int x = self.window.frame.origin.x + calcX;
int y = self.window.frame.origin.y;
int width = self.bounds.size.width;
int height = self.bounds.size.height;
[self.imagePanelController.previewPanel setFrame:NSRectFromCGRect(CGRectMake(x, y, width, height)) display:YES animate:YES];
[self.imagePanelController.previewPanel close];
}
除了将对象渲染到一个层并设置动画外,Windows还有一个新的功能。