在 NSPanel 中初始化控件

Posted

技术标签:

【中文标题】在 NSPanel 中初始化控件【英文标题】:Initializing Controls in NSPanel 【发布时间】:2011-05-23 20:26:59 【问题描述】:

我的应用中有一个 NSPanel,用作数据导出功能。

当面板最初显示时,如何初始化面板中的控件? (即使用 NSDefaults)。当窗口/面板打开时似乎没有触发事件,我可以恢复默认设置(基本上只是恢复 NSPopupButton 的值)。

目前,我在我的 App Delegate 类中使用“[NSApp beginSheet...]”打开面板。我应该改用 NSWindowController 子类吗?

【问题讨论】:

NSPanel 是如何产生的?例如,它是存储在您的主 .nib 文件中,还是存储在您的 App Delegate 按需加载的 .nib 文件中,或者您是以编程方式创建它,还是...? 【参考方案1】:

不要子类化NSWindowController,只需子类化NSPannel 本身。

ExportPanel.h

#import <Cocoa/Cocoa.h>

@interface ExportPanel : NSPanel 



@end

ExportPanel.m

#import "ExportPanel.h"

@implementation ExportPanel

- (void)awakeFromNib

    // Initialize here


@end

【讨论】:

太好了,谢谢!这解决了它 - 当你看到它时很明显!

以上是关于在 NSPanel 中初始化控件的主要内容,如果未能解决你的问题,请参考以下文章

如何在最顶层的 NSPanel 中获取键盘事件?

在界面生成器中未选中“标题栏”的 NSPanel 不会出现

Fragment应该在哪个方法中获取控件并初始化

求助!!!我在vs2010 c#中添加一个webbrowser控件,在控件中初始化一页面,然后输入

无法在 MFC Visual .NET 2008 中初始化滑块控件变量

Fragment应该在哪个方法中获取控件并初始化