我在目标C的窗口中放置一个关闭按钮时出现问题,我已经创建了按钮,但我不知道关闭窗口需要调用的方法是什么,我已经这样做了:
-(void)awakeFromNib{
//Create a button
NSRect frame = NSMakeRect(350, 10, 100, 50);
NSButton *btn = [[NSButton alloc]initWithFrame:frame];
[btn setButtonType:NSMomentaryPushInButton];
[btn setBezelStyle:NSRoundedBezelStyle];
[btn setTitle:@"Close"];
[btn setTarget:self];
[btn setAction:@selector(closeWindow)];
[view addSubview:btn];
}
-(void)closeWindow{}
我不知道在关闭窗口方法中放什么
答案 0 :(得分:2)
您可以使用以下内容来关闭当前窗口:
NSWindow *window = [[NSApplication sharedApplication] keyWindow];
[window close];
但是,这并不主动模拟关闭窗口的用户,因为它不会调用委托方法,也不会突出显示关闭按钮。您可能想要使用它:
NSWindow *window = [[NSApplication sharedApplication] keyWindow];
[window performClose:sender];
在这种情况下,您可能希望将按钮作为发件人传递。您可以在closeWindow
方法中接收按钮作为对象,以简化操作。
答案 1 :(得分:0)
如果您从NSWindowController子类中执行此操作,只需调用[self close]
即可。
答案 2 :(得分:-1)
如果触摸视图以显示当前视图,则可以使用removeFromSuperview。 只需简单添加[self removeFromSuperview];