gpt4 book ai didi

objective-c - 为什么应用程序窗口只打开一次然后就打不开了?

转载 作者:行者123 更新时间:2023-12-03 16:26:38 24 4
gpt4 key购买 nike

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

谢谢。

编辑:我看到了另一篇关于此问题的帖子,但仍未得到答复,所以我想知道您是否可以帮我回答这个问题。

编辑:我正在谈论一个面板(使用首选项 Pane ),它是通过菜单项打开的,并通过窗口角的十字关闭。我用来创建它的代码来自《Mac OS X 的 Cocoa 编程》一书,用作首选项 Pane 的面板位于单独的 nib 文件中。

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

1) Preferences_Delegate.h

#import <Cocoa/Cocoa.h>
@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 <Cocoa/Cocoa.h>
@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

最佳答案

在 Interface Builder 中,确保窗口属性中的关闭时释放已关闭。还要仔细检查窗口 Controller 与窗口的连接是否正确。

关于objective-c - 为什么应用程序窗口只打开一次然后就打不开了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/835830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com