-1

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

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

4

3 回答 3

2

您可以使用以下内容关闭当前窗口:

NSWindow *window = [[NSApplication sharedApplication] keyWindow];
[window close];

但是,这不会主动模拟用户关闭窗口,因为它不会调用委托方法,也不会突出显示关闭按钮。您可能想改用它:

NSWindow *window = [[NSApplication sharedApplication] keyWindow];
[window performClose:sender];

在这种情况下,您可能希望将您的按钮作为发件人传递。您可以将closeWindow方法中的按钮作为对象接收,以使事情变得简单。

于 2012-07-12T02:49:08.627 回答
0

如果您从 NSWindowController 子类中执行此操作,只需调用[self close].

于 2012-07-12T03:01:05.480 回答
-1

如果你触摸一个视图来当前这个视图,你可以使用 removeFromSuperview。只需简单添加 [self removeFromSuperview];

于 2012-07-12T03:01:07.860 回答