【问题标题】:Using NSWindowController to manipulate a window使用 NSWindowController 操作窗口
【发布时间】:2009-12-28 08:35:08
【问题描述】:

我有以下代码:

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

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

【问题讨论】:

    标签: objective-c cocoa xcode nswindow nswindowcontroller


    【解决方案1】:

    好吧,您的代码中没有处理任何实际的窗口元素,您的代码只是初始化并显示窗口。 (我刚刚快速浏览了一下,所以我假设它有效)

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

    非常简单的说明:

    1. 将一个标签项从 Interface Builder 库拖放到您的窗口中。
    2. 将一个按钮项从 Interface Builder 库拖放到您的窗口中。
    3. 在 XCode 中,在您的窗口控制器中,为您的标签创建一个 IBOutlet,例如消息标签
    4. 在 XCode 中,在您的窗口控制器中,为您的标签创建一个 IBAction,例如更改标签
    5. 在 Interface Builder 中,将“对象”拖放到文档中。 (快捷方式 = CMD + 0)
    6. 在 Identity 选项卡下,将类更改为 AXWindowController。 (快捷方式 = CMD + 6)
    7. Ctrl+拖动从对象到标签,选择出口messageLabel。
    8. Ctrl + 从按钮拖动到对象,选择changeLabel。

    现在,要在您按下按钮时显示文本,您需要向 changeLabel IBAction 添加代码来执行此操作。 例如[messageLabel setTitleWithMnemonic:@"blah"];

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多