我正在学习一些obj-c,因此我正在构建一个小型的可可应用程序。
在MainMenu.xib中,我在顶部的“主菜单”中添加了一个菜单。单击时,这将触发一个打开窗口实例的IBAction,在本例中为用于管理类别的窗口。
此类别窗口有一个NSWindowController,如下所示:
// 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自动关闭。
我该怎么做呢?这个设置有一个不好的地方(在某个地方的教程之后...)我可以通过点击菜单按钮打开这个窗口的很多实例。
有什么建议或想法从哪里开始吗?
发布于 2012-12-06 00:29:28
从那里开始Reference
[Categories close];但是,当您从类的实例方法创建类的实例时,您的实现出现了问题。这在我看来不太对劲。此外,你没有在任何地方保留新的实例,所以它可能会在ARC下被销毁,或者在MRR下泄露。
我想你可能想要:
-(IBAction)OpenCategoriesWindow:(id)sender
{
[self showWindow:sender];
}
-(IBAction)CloseCategoriesWindow:(id)sender
{
[self close];
}虽然我不能确定。
https://stackoverflow.com/questions/13727426
复制相似问题