目标C - 如何在窗口中放置关闭按钮?

时间:2012-07-12 02:28:45

标签: objective-c button window

我在目标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{}

我不知道在关闭窗口方法中放什么

3 个答案:

答案 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];