私はpopoversとダイナミックなボタン作成について質問があります。まず、私は私が何をしたいのかを証明するためにあなたのPoCのストーリーボードのバージョンを表示してみましょう:
私はボタンを押すと、新しいのViewControllerが押されたボタンにより表示:
これまでのところOkです。それが課題です。しかし、今私はボタンをプログラムで追加し、スタックビューに追加する必要があります。
プロトタイプコード:
class ViewController: NSViewController {
@IBOutlet weak var stackView: NSStackView!
override func viewDidLoad() {
super.viewDidLoad()
for i in (1...5) {
addButton(i)
}
}
func addButton(_ i: Int){
let button = NSButton(title: "TAG Button \(i)", target: nil, action: nil)
stackView.addArrangedSubview(button)
}
}
それはよさそうだ:
私の質問は:あなたは、各ボタンの上にポップオーバーを行うだろうか。プログラムでも追加するか、ストーリーボードを使用してビューを再利用する必要がありますか?それが素晴らしく、滑らかでリファクタリング可能であるという問題をどうやって解決しますか?
ご存知の方は、簡単な導入方法を紹介してください。
私が追加するボタンは、詳細情報と操作のためにクリック可能なタグになります。
ありがとうございました!私はSBのポップアップビューコントローラを作ってきました
+++++ UPDATE ++++
。私のボタンはクリックターゲットを持ち、関数を呼び出します。それは大丈夫です。しかし、どのようにボタンからポップアップを分割することができますか?
@objc func click(_ sender: NSButton?){
let sb = NSStoryboard(name: NSStoryboard.Name("Main"), bundle: nil)
if let vc: NSViewController = sb.instantiateController(withIdentifier: NSStoryboard.SceneIdentifier("TagPopupViewController")) as? NSViewController {
// how to set the vc as popover over the button?
}
}
sender
には、presentViewController-functionがありません。
あなたは何を試しましたか?すべてのボタンが同じポップオーバーを表示する必要がありますか?私はボタンの動作を設定し、そうでなければ動作しません。アクションでは、私はストーリーボードからVCを読み込み、ポップオーバーとして提示します。 – Willeke
ボタンにはテキストが表示されており、VCにはコンテキストのようなメニューが必要です。すべてのポップオーバーには同じUIが表示され、選択したタグで動作(移動、複製、削除)する必要があります。 –
私は上記の質問を更新しました。私は、ボタンによってトリガーされるクリック機能を持っています。しかし、popover segueとしてView Controllerを提示する方法はありますか? –