簡體   English   中英

Cocoa:如何在Swift的視圖控制器中設置窗口標題?

[英]Cocoa: How to set window title from within view controller in Swift?

我試圖構建一個在Xcode 6中使用storyboard和Swift的Cocoa應用程序。但是,當我試圖從NSViewController改變窗口的標題時,以下代碼不起作用。

self.title = "changed label"

當我在viewDidLoad()函數中編寫上面的代碼時,生成的應用程序的標題仍然是window

此外,以下代碼會導致錯誤,因為View Controller沒有window等屬性。

self.window.title = "changed label"

那么如何在故事板上構建的Cocoa應用程序中以編程方式更改窗口的標題?

您的代碼有2個問題:

  • 將視圖添加到窗口之前調用viewDidLoad
  • NSViewController沒有窗口屬性

要修復第一個,您可以覆蓋viewDidAppear() 視圖完全轉換到屏幕調用此方法。 此時它已添加到窗口中。
要獲取對窗口標題的引用,可以通過其視圖訪問視圖控制器的窗口: self.view.window.title

只需將以下內容添加到視圖控制器子類中,窗口標題應該更改:

override func viewDidAppear() {
    super.viewDidAppear()
    self.view.window?.title = "changed label"
}

這對我有用,currentDict是從之前的viewController傳遞的NSDictionary

var currentDict:NSDictionary?

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    if let myString:String = currentDict?["title"] as? String {
        self.title = myString
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM