問題タブ [nspopupbutton]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3770 参照

cocoa - ビューベースの NSTableView の NSPopupButton: バインディングを機能させる

問題の説明

私は、単純でかなり一般的であるべき何かを達成しようとしています: バインディングに NSPopupButton を設定し、バインディングに NSTableView を設定します。Apple は、ポップアップ メニューを使用した対 1 関係の実装のドキュメントで、セル ベースのテーブルについてこれを説明しており、次のようになっています。

ここに画像の説明を入力

ビューベースのテーブルでこれを機能させることはできません。「作成者」ポップアップは、何をしても表示されません。

テーブル内の項目 ( Items ) 用と作成者 ( Authors ) 用の 2 つの配列コントローラーがあり、どちらもコア データ モデルのそれぞれのエンティティに関連付けられています。インターフェイスビルダーで次のように、セルに NSManagedPopup をバインドします。

  • コンテンツ->作成者(コントローラー キー: ArrangeObjects )
  • コンテンツ値->作成者(コントローラー キー: ArrangeObjects、モデル キー パス: name )
  • 選択したオブジェクト->テーブル セル ビュー(モデル キー パス: objectValue.author

ポップアップをテーブルの外のどこかに配置すると、正常に動作するので (明らかに選択を除いて)、バインディングのセットアップは問題ないと思います。


私がすでに試したこと

  1. 誰かがIBOutlet プロパティAuthors配列コントローラーに使用する回避策を提案しましたが、これも私にはうまくいかないようです。

  2. 別のSOの質問では、NSTableCellViewをサブクラス化し、必要な接続をプログラムで確立することが提案されました。私はこれを試しましたが、限られた成功しかありませんでした。

    次のようにバインディングをセットアップすると:

    ポップアップには可能な作成者のリストが表示されますが、現在の選択は常に「値なし」と表示されます。追加すると

    現在の選択は完全に空です。現在の選択を表示する唯一の方法は、設定することです

    プロパティに を割り当てようとするため、別の作成者を選択するとすぐに壊れNSString*ますAuthor*

何か案は?

0 投票する
0 に答える
188 参照

cocoa - NSPopupButton に Core Data Entity とメニュー項目を設定する

コア データ エンティティのリストを NSPopupButton に配置し、さらにそこにメニュー項目を配置する方法はありますか?

Person と Car という 2 つのコア データ エンティティがあります。人は多くの車 (関係) を持っています。シート上で、ユーザーは人物のポップアップ ボタンから車を選択できる必要があります。このポップアップ ボタンは、新しい車を作成するオプションも提供する必要があります。これは、その人のために選択されます。

これまでの私の試み:

IB の NSPopupButton に入れたアイテムは、ポップアップがコア データから読み込まれるときに実行時に表示されません。

ユーザーがポップアップからアイテムを選択したときに呼び出されるアクションを指定できますが、それはすべてのアイテムに対してトリガーされます。(必要なシートをトリガーするためだけに、コア データ エンティティにダミー エントリが必要でした。また、ポップアップ内のそのダミー項目の位置を制御することもできません)

0 投票する
1 に答える
727 参照

objective-c - NSPopUpButtonにfirstResponderステータスを受け入れさせるにはどうすればよいですか?

NSPopUpButton単純なサブクラスもありNSPopUpButtonます。サブクラスには次のものがあります。

- (BOOL)acceptsFirstResponder { return YES; }

- (BOOL)refusesFirstResponder { return NO; }

これで、ボタンをファーストレスポンダーにするようにウィンドウに指示するのは簡単で、起動時に機能しますが、NSTextFieldからタブで移動してnextResponderとしても発生する必要があります。NSTextFieldにフォーカスが移ると、ポップアップボタンに戻ることができないように見えます。

ここで何が欠けていますか?本当にシンプルなはずです。

回答:firstResponderはここで使用するものではありません。サブクラスが必要であり(私が推測したように)、YESを返すには以下をオーバーライドする必要があります:( - (BOOL)canBecomeKeyView { return YES; } Peter Hoseyに感謝)

0 投票する
1 に答える
80 参照

runtime-error - プログラムで定義された NSPopUpButton をクリックするとエラーが発生する

このエラーは特定の回数だけ発生します (新しいドキュメントを作成した後)。保存して再度開くと、機能します。何か案が?誰かが同じエラーを起こしましたか?

ありがとう!

0 投票する
0 に答える
354 参照

objective-c - NSPopupButton のデフォルトの状態とバインディング

コンテンツ/値の配列コントローラーに関連付けられた NSPopupButton があり、ビューコントローラーのプロパティに関連付けられていました..すべて正常に機能していました。次に、共有ユーザーのデフォルトにあるポップアップのデフォルト値が必要でした..これはすべてがうまくいかないところです! 「選択した値」を変更して、ユーザーのデフォルトのモデルキーパスを持つようにすると、ローカルプロパティへのバインディングが削除されました。また、私が望まないデフォルトを変更します (これは [設定] ウィンドウで行います)。

今のところ、ポップアップから NSString によって必要な mnaged オブジェクトを検索するコードでそれを回避しました :[[_qualifierPopup selectedCell] title]... しかし、これは非常に不格好です!

だから2つの質問:

  1. NSPopupbutton のデフォルト状態を共有ユーザー デフォルトで設定できますか?
  2. ポップアップがユーザーのデフォルトにバインドされる前に、正しい管理オブジェクトを返すタイプ id のプロパティにバインドされていたことを考慮して、ポップアップから文字列ではなく同じ ID を取得し、その文字列を検索できますか? もしそうなら、誰かが構文を手伝ってくれます。

ありがとうイアン

0 投票する
1 に答える
433 参照

objective-c - バインディングを使用した NSTableView の NSPopupButton

私たちの多くが、特にネストされたバインドなど、同じバインドの問題を抱えていることを願っています。

シナリオ :

プロパティを持つクラス Person がnameありroleます。役割は他のソースから取得されます。

人物クラス:

AppDelegate クラス:

テーブルビューとポップアップボタンがあります。TableView は ArrayController にバインドされます。

popupbutton をロールにバインドして、選択した値がオブジェクトまたは Person、つまりモデルで更新されるようにする方法は?

0 投票する
1 に答える
834 参照

objective-c - ライブ フォント (スタイル付きテキスト) を使用した NSPopupButton

popupbutton コントロール ( NSPopupButton )でライブ フォントを表示することは可能でしょうか? 現在、次の方法で使用可能なフォントのリストを含む popupbutton をロードします。

たぶん、NSMutableAttributedString を使用して、次のようなものですか?

範囲外のエラーが発生します。私のアプローチが正しいかどうかはわかりません。popupbutton コントロールがスタイル付きテキストをサポートしているかどうかさえわかりません。

ご協力ありがとうございました。

0 投票する
1 に答える
400 参照

objective-c - NSUserDefaults を使用して NSPopupbutton から選択したアイテムを保存する

いろいろやってみたのですが、うまく動かない...

うまくいかない、何か提案はありますか?

0 投票する
2 に答える
9504 参照

macos - 選択した項目を NSPopUpButton から取得するにはどうすればよいですか?

このコードのコンパイルは成功しましたが、「項目 1」を選択したにもかかわらず、「失敗しました」というメッセージが表示されました。
私の間違いは「myPopUpのselectedItem」だと思いますが、修正方法がわかりません。
選択した項目を NSPopUpButton から取得するにはどうすればよいですか?