【问题标题】:Programmatically change title of window created by storyboard以编程方式更改情节提要创建的窗口的标题
【发布时间】:2015-03-07 01:50:43
【问题描述】:

在 xcode 6.1 中,我如何以编程方式更改故事板创建的窗口的标题?此项目适用于 OS X。默认情况下,它是“Window”。我正在使用 OBJ C。

【问题讨论】:

    标签: storyboard xcode6 osx-yosemite xcode-storyboard


    【解决方案1】:

    Swift 中的代码是

    override func viewDidAppear() {
        self.view.window?.title = "joe"
    }
    

    在 Objective-C 中它大约是 self.view.window.title = @"joe";

    必须在viewDidAppear 中,因为在viewDidLoad 中为时过早。


    OT,但要通过 Storyboards 来实现:

    【讨论】:

    • 所以你不必继承 NSWindow 或 NSWindowController?
    • 您根本不必继承 NSWindow,而且您可能不应该这样做。
    • 主视图控制器的代码版本在viewDidAppear中。
    • 如何访问 AppDelegate 中的应用窗口?
    【解决方案2】:

    在 Apple 用于 macOS 的通用 Objective-C Xcode 模板的 AppDelegate 上下文中,您可以通过以下代码行访问您的主窗口句柄:

    [[[NSApplication sharedApplication] mainWindow] setTitle:@"Your Title"];
    

    或者只使用共享应用实例的全局常量简写:

    [[NSApp mainWindow] setTitle:@"Your Title"];
    

    这些示例首先检索应用程序的实例,然后获取它的主窗口。请注意,如果应用的情节提要或 NIB 文件尚未完成加载、应用处于非活动状态或隐藏状态,则可能不会应用标题。

    以上假设您有一个 Main.storyboard 具有层次结构 Window Controller Scene > Window Controller > Window -- 具有非自定义 Identifier==Automatic 且未将此 NSWindow 子类化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2016-10-08
      • 1970-01-01
      相关资源
      最近更新 更多