 open class KCPlaneViewController: KCViewController, KCViewControlEventReceiver
 {
 	private var mRootView:			KCRootView?
+	#if os(OSX)
+	private var mHasPreferedContentSize:	Bool
+	#endif
 
 	public init(){
-		mRootView	= nil
+		mRootView		= nil
+		#if os(OSX)
+			mHasPreferedContentSize	= false
+		#endif
 		super.init(nibName: nil, bundle: nil)
 	}
 	
 	public required init?(coder: NSCoder) {
-		mRootView	= nil
+		mRootView		= nil
+		#if os(OSX)
+			mHasPreferedContentSize	= false
+		#endif
 		super.init(coder: coder)
 	}
 

	#endif

	#if os(OSX)
	open override func viewDidAppear() {
		super.viewDidAppear()
		doViewDidAppear()


	private func doViewWillLayout() {
		if let root = mRootView {
			#if os(OSX)
			if mHasPreferedContentSize {
				if let win = root.window {
					win.setContentSize(self.preferredContentSize)
				}
			}
			#endif
			if root.hasCoreView {
				/* Layout components */
				CNLog(logLevel: .debug, message: "- [Execute Layout] (root-size=\(root.frame.size.description)")
