当前位置:  开发笔记 > IOS > 正文

为什么App窗口只打开一次然后再打开?

如何解决《为什么App窗口只打开一次然后再打开?》经验,为你挑选了1个好方法。

我正在从书中的教程创建一个应用程序,但我注意到一个问题,当我创建的首选项窗口打开然后关闭它将无法再次打开时,我该如何解决这个问题?

谢谢.

编辑:我看到另一篇关于此的帖子,但仍然没有回答,所以我想知道你是否可以为我回答这个问题.

编辑:我说的面板(使用偏好窗格),它正在通过菜单项打开,并在窗口的角落交叉封闭.我用来创建它的代码来自Book,Cocoa Programming For Mac OS X,用作首选项窗格的Panel位于单独的nib文件中.

编辑:这是代码,它很复杂,因为教程让你创建4个文件.

1)Preferences_Delegate.h

#import 
@class PreferenceController;

@interface Prefernces_Delegate : NSObject {
    PreferenceController *preferenceController;
}
- (IBAction)showPreferencePanel:(id)sender;

@end

2)Preferences_Delegate.m

#import "Prefernces_Delegate.h"
#import "PreferenceController.h"

@implementation Prefernces_Delegate

- (IBAction)showPreferencePanel:(id)sender
{
    // Is preferenceController nil?
    if (!preferenceController) {
        preferenceController = [[PreferenceController alloc] init];
    }
    NSLog(@"showing %@", preferenceController);
    [preferenceController showWindow:self];
}

@end

3)PreferencesController.h(不重要)

#import 
@interface PreferenceController : NSWindowController {
    IBOutlet NSButton *checkbox;
}
- (IBAction)changeNewEmptyDoc:(id)sender;
@end

4)PreferencesController.m

#import "PreferenceController.h"


@implementation PreferenceController

- (id)init
{
    if (![super initWithWindowNibName:@"Preferences"])
        return nil;
    return self;
}
- (void)windowDidLoad
{
    NSLog(@"Nib file is loaded");
}
- (IBAction)changeNewEmptyDoc: (id)sender
{
    int state = [checkbox state];
        NSLog(@"Checkbox changed %d", state);
}




@end

Marc Charbon.. 5

在Interface Builder中,确保在Window的属性中关闭Release on close.还要仔细检查窗口控制器与窗口之间的连接是否正常连接.



1> Marc Charbon..:

在Interface Builder中,确保在Window的属性中关闭Release on close.还要仔细检查窗口控制器与窗口之间的连接是否正常连接.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有