複数のフィールドを持つ異なるNSViewController
があります。 1つはNSDatePicker、もう1つはNSTextFieldを持つ などです。NSViewControllerのビューをNSView(NSScrollView)サブビューとして表示
アイデアは、私は、特定のボタンをクリックしたときNSScrollViewでこれらを表示することです。
は、だから私は、次の解決策を考え出した:[ViewController
]
ViewController
S(異なる入力を持つ)すべてのカスタムを保持している:
私の主なViewController
クラスは、変数viewControlersを持っています。ボタンをクリックすると、特定のViewController
が初期化され、スクロールビューにそのビューが追加されます。
Examle:
let dmyVC = storyBoard.instantiateController(withIdentifier: "DayMonthYearVC") as! DayMonthYearSelectVC
self.viewControlers.append(dmyVC) //add new vc to the array
scrollView.addSubview(dmyVC.view) //add this VC’s view to a scroll view
私は入力を備えたViewController
のすべてのカスタムに「近い()」機能をトリガーすることNSButton
を追加しました。そして、私は、「クローズ」機能のものViewController
の上:
self.view.removeFromSuperview()
それだけscrollViewからViewController
のビューを削除しますが、ViewController
自体は割り当て解除ではなく、それはviewControlers配列に残っているが(mainViewController内の変数)
私はデリゲートを作成することを考えていましたが、それらのビューのいずれかの閉じるボタンが押されるたびにデリゲートメソッドを呼び出しました。この場合、単に(すべてのカスタムのために)ViewController
というデリゲートの配列を作成するだけです(作成された配列ViewController
のすべてを参照する配列と並行して)。
は、今私が思うに、あなたは別のビュー内
ViewController
s’の見解を提示したいような状況に対処する一般的な方法があり、または誰もが、彼らがより良い好きなようにそれをしませんか?
「scrollView.addSubview(dmyVC.view)」は、スクロールビューにビューを追加する方法ではありません。 – Willeke
scrollViewは、あとでScrollViewのdocumentViewになる単なるNSViewです(mainScrollView.documentView = scrollView) – Alex