2016-04-01 12 views
0

私は自分のフォームの1つのポップアップボタンのメニューに入力された文字列のリストを持っています。この同じポップアップは、別のストーリーボード上の2つの別のウィンドウにあります。リスト内の項目もコード内の配列になります。参考のため、ここに配列があります:複数のポップアップやストーリーボードでポップアップボタンメニューを共有できますか?

static let selections = ["NTSC", "ATSC", "AM", "FM", "Other"] 

私はこれをすべて共有できる方法はありますか?

理想的には、バインディングを使用して配列にバインドします。しかし、メニューにはセパレータがあり、それを配列で定義できるとは思いませんか?

私はメニューをどこかのストーリーボードに置いて、さまざまな画面から参照できる方法はありますか?

にならない場合、メニューをある場所から別の場所に簡単にコピーできますか?私の試みは、新しいメニューがストーリーボード内で独自に作成される結果となり、ポップアップボタン自体に貼り付けることができないようです。

答えて

0

NSPopupButtonには内部的に選択項目を提供するNSMenuオブジェクトが含まれています。必要なNSMenuItemsを持つNSMenuを生成するクラスメソッドを使用してクラスを作成し、その生成されたNSMenuオブジェクトにポップアップボタンのmenuプロパティを設定します。

あなたのストーリーボードにこのNSMenuをビルドして共有可能にする良い方法はないと思います。私はコードでNSMenuを作成してから手動であなたのviewDidLoadメソッドでワイヤリングしなければならないと思います。ただし、NSPopUpButtonオブジェクトをストーリーボードに配置してコントローラに接続することができます。後で手動でmenuを手動で設定するだけです。

+0

メニューをコピーしてストーリーボード自体に貼り付け、ボタンの「メニュー」項目にバインドすることができます。しかし、私は元のメニューを削除する方法や画面上で共有する方法を見つけることができません。それはコードです! –