我知道我可以如何以編程方式執行此操作。我知道在爲iOS創建故事板時非常簡單,就在屬性檢查器中。然而,當爲OSX創建故事板時,我沒有看到它對於我的任何視圖控制器或其在Xcode 6.1.1中的視圖。如何使用OSX使用情節提要時創建NSView的背景
如何更改視圖的背景而無需創建視圖控制器關聯用它。我的應用程序有很多簡單的視圖,但背景會從一個視圖變爲另一個視圖。
我知道我可以如何以編程方式執行此操作。我知道在爲iOS創建故事板時非常簡單,就在屬性檢查器中。然而,當爲OSX創建故事板時,我沒有看到它對於我的任何視圖控制器或其在Xcode 6.1.1中的視圖。如何使用OSX使用情節提要時創建NSView的背景
如何更改視圖的背景而無需創建視圖控制器關聯用它。我的應用程序有很多簡單的視圖,但背景會從一個視圖變爲另一個視圖。
你不應該需要一個新的viewController來改變一個NSView的背景。如果你沒有子類的NSView,那麼你可以直接電話諮詢:
myView.wantsLayer = true
myView.layer!.backgroundColor = CGColorGetConstantColor(kCGColorBlack)
我不知道,如果你能嚴格故事板做到這一點,雖然你可以使用用戶可能設置wantsLayer = true在故事板定義的運行時屬性。
可以在故事板改變NSView
的背景顏色,如果你繼承NSView
和子類分配給您的觀點:
使用這個子類實施:
import Cocoa
class ViewWithBackgroundColor : NSView {
@IBInspectable var backgroundColor: NSColor? {
get {
guard let layer = layer, backgroundColor = layer.backgroundColor else { return nil }
return NSColor(CGColor: backgroundColor)
}
set {
wantsLayer = true
layer?.backgroundColor = newValue?.CGColor
}
}
override init(frame frameRect: NSRect) {
super.init(frame: frameRect)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
}
背景顏色在設計時不顯示,但在運行時顯示。
也許有人知道如何在設計時更新視圖(最好不要重寫繪製方法)。
謝謝,這有助於。我改爲使用NSView代替並使用以下代碼:https://github.com/benzguo/demosthenes/blob/master/demosthenes/Categories/NSView.swift – Alex 2015-02-06 21:56:38