首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何关闭NSWindowController实例

如何关闭NSWindowController实例
EN

Stack Overflow用户
提问于 2012-12-06 00:06:47
回答 1查看 2.3K关注 0票数 0

我正在学习一些obj-c,因此我正在构建一个小型的可可应用程序。

在MainMenu.xib中,我在顶部的“主菜单”中添加了一个菜单。单击时,这将触发一个打开窗口实例的IBAction,在本例中为用于管理类别的窗口。

此类别窗口有一个NSWindowController,如下所示:

代码语言:javascript
复制
//  CategoriesWindow.h
#import <Cocoa/Cocoa.h>
@interface CategoriesWindow : NSWindowController
-(IBAction)OpenCategoriesWindow:(id)sender;
@end

//  CategoriesWindow.m
#import "CategoriesWindow.h"

@implementation CategoriesWindow

-(IBAction)OpenCategoriesWindow:(id)sender
{
    CategoriesWindow *Categories = [[CategoriesWindow alloc] initWithWindowNibName:@"CategoriesWindow"];
    [Categories showWindow:self];
}
@end

为此,我有一个带有NSTableView的CategoriesWindow.xib来做一些事情,所以我有一个CategoryTableController.h和.m来处理这个表的数据。当我点击一个按钮时,我想让它做一堆事情,然后我想让窗口自动关闭它。也就是说,我希望这个窗口从CategoryTableController.m中的IBAction自动关闭。

我该怎么做呢?这个设置有一个不好的地方(在某个地方的教程之后...)我可以通过点击菜单按钮打开这个窗口的很多实例。

有什么建议或想法从哪里开始吗?

EN

回答 1

Stack Overflow用户

发布于 2012-12-06 00:29:28

从那里开始Reference

代码语言:javascript
复制
[Categories close];

但是,当您从类的实例方法创建类的实例时,您的实现出现了问题。这在我看来不太对劲。此外,你没有在任何地方保留新的实例,所以它可能会在ARC下被销毁,或者在MRR下泄露。

我想你可能想要:

代码语言:javascript
复制
-(IBAction)OpenCategoriesWindow:(id)sender
{
    [self showWindow:sender];
}

-(IBAction)CloseCategoriesWindow:(id)sender
{
    [self close];
}

虽然我不能确定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13727426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档