[英]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.