gpt4 book ai didi

objective-c - 来自应用程序的新 NSWindow - 不可能完成的任务?

转载 作者:行者123 更新时间:2023-12-03 16:48:13 28 4
gpt4 key购买 nike

好吧,我做错了什么?
1.创建了 cocoa 应用程序和名为:window2AppDelegate的appDelegate
2. window2AppDelegate.h

#import "PrefWindowController.h"
@interface window2AppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
PrefWindowController * ctrl;
}

@property (assign) IBOutlet NSWindow *window;
- (IBAction) buttonClick:(id)sender;
- (IBAction) buttonCloseClick:(id)sender;
@end


3.在 xib 编辑器中,窗口连接到窗口 Controller - 设置为 appdelegate,buttonclick 操作为按钮
4、创建

#import <Cocoa/Cocoa.h>
@interface PrefWindowController : NSWindowController {
@private

}
@end

#import "PrefWindowController.h"
@implementation PrefWindowController

- (id)init {
self = [super initWithWindowNibName: @"PrefWindow"];
return self;
}

- (void)dealloc {
// Clean-up code here.
[super dealloc];
}

- (void)windowDidLoad {
[super windowDidLoad];
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
}

@end


5.创建了名为 PrefWindow 的新 xib 文件,窗口 IBOutlet 从其 Controller 连接到窗口(也是设置为 PrefWindowController 的 Controller )选项“启动时可见”未选中!我想在单击按钮时看到这个窗口。
6.实现了window2AppDelegate

#import "window2AppDelegate.h"
@implementation window2AppDelegate
@synthesize window;

- (id) init {
if ((self = [super init])) {
ctrl = [[PrefWindowController alloc] init];
if ([ctrl window] == nil)
NSLog(@"Seems the window is nil!\n");
}
return self;
}

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
return YES;
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
}

- (IBAction) buttonClick:(id)sender {
// [[ctrl window] makeKeyAndOrderFront:self]; this doesn't work too :(
NSLog(@"it is here");
[ctrl showWindow:sender];
}

- (IBAction) buttonCloseClick:(id)sender {
[window close];
}

@end


7.在我构建并运行应用程序后: closebutton 关闭应用程序,但单击按钮 - 不会向我显示 PrefWindow!?为什么以及我做错了什么?不要告诉我在 cocoa Objective-C 中显示其他窗口比在“愚蠢的”Java 或 C# 中更困难吗?

最佳答案

我终于解决了这个问题!在 PrefWindow 的 nib 编辑器中,我必须执行以下操作:将文件的所有者类设置为:NSWindowController,然后将窗口 IBOutlet 从文件的所有者连接到我的(首选)窗口。经过 6 天的尝试失败后,Google 成功了。
无论如何,感谢您的回复和时间!

关于objective-c - 来自应用程序的新 NSWindow - 不可能完成的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432143/

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