使用NSWindowController来操作窗口

时间:2009-12-28 08:35:08

标签: objective-c cocoa xcode nswindow nswindowcontroller

我有以下代码:

AXWindowController *controller = [[AXWindowController alloc] 
initWithWindowNibName:@"ActivateWindow"];
[controller showWindow:nil];

如何使用控制器更改窗口ActivateWindow(例如更改窗口上的文本等)?一步一步的说明将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:2)

嗯,在你的代码段中没有处理任何实际的窗口元素,你的代码只是初始化并显示窗口。 (我刚刚进行了快速扫描,所以我假设它有效)

例如,如果您想在窗口中显示文字,最简单的方法是使用NSTextField

非常简单的说明:

  1. 将Label项目从Interface Builder库拖放到窗口中。
  2. 将Interface Builder库中的按钮项拖放到窗口中。
  3. 在XCode中,在您的窗口控制器中,为您的标签创建一个IBOutlet,例如: messageLabel
  4. 在XCode中,在您的窗口控制器中,为您的标签创建一个IBAction,例如changeLabel
  5. 在Interface Builder中,将“对象”拖放到文档中。 (快捷方式= CMD + 0)
  6. 在“标识”选项卡下,将类更改为AXWindowController。 (快捷方式= CMD + 6)
  7. Ctrl +从对象拖动到标签,选择出口messageLabel。
  8. Ctrl +从按钮拖动到对象,选择changeLabel。
  9. 现在,要在按下按钮时显示文本,您需要将代码添加到changeLabel IBAction以执行此操作。 例如[messageLabel setTitleWithMnemonic:@"blah"];

    最后,如果您希望它自动显示文本,您也可以只更改Interface Builder中的标签内容/将代码放在控制器的windowDidLoad方法中。

    这对我来说几乎是最简单的方法。但是,我建议你在深入研究更难的东西之前阅读一些关于Cocoa和Objective-C的书籍/教程。

答案 1 :(得分:0)

当然,您可以在窗口控制器的代码中以编程方式对窗口进行更改。打开AXWindowController.m并做任何你想做的事情。如果不确切地知道你想要做什么(如果你只想创建界面,使用Interface Builder)或者你的经验水平是什么,那么很难给出更明确的答案。