問題タブ [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 投票する
1 に答える
1406 参照

objective-c - NSPopUpButton + バインディング + すべて表示オプション

いくつかのデータソースへのフィルターとして機能する を開発しようとしています。たとえば、テーブルを埋めるNSPopUpButtonとしましょう。NSArrayController

NSArrayControllerメニューから選択キーパスにバインドできるので、データが適切にフィルタリングされますが、問題ありません。

トリッキーな部分は、このコンテンツをバインディングNSPopUpButtonの使用に依存させたいのですNSArrayControllerが、「すべて表示」メニュー項目、または少なくともコアデータからのものではなく、いくつかの特別な機能を実行する項目を追加したいということですバインディングとコア データを使用してテーブルをフィルタリングする以外のアクション。

メニューの最後の項目は特別なNSPopUpButtonアクションを実行しますが、他の項目は結果をフィルタリングするだけです。

NSArrayControllerコアデータに依存しないこのカスタムメニュー項目を追加するためにバインディングを台無しにする方法はないと信じているため、バインディングを忘れてすべてをプログラムで行うというアプローチであることを理解していますが、 Apple Docsで何かを見つけました。ここで、私の考えを共有したいと思います...何かアイデアはありますか?

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

objective-c - NSPopUpButtonを適切に使用する方法

ファイルを開くためのテキストエンコーディングを選択するために使用したいNSPopUpButtonがあります。

私はすでにこれを実装する方法についていくつかのアイデアを持っていますが、Objective-CとCocoaを学び始めているので、私が望むことを達成するためのより良い方法があるとほぼ確信しています。

エンコーディングの名前と関連するNSStringEncoding値を持つNSStringが必要です。

エンコーディング(名前と値)を表すクラスを作成し、このタイプのオブジェクトを含むNSArrayを作成してから、NSPopUpButtonに配列の内容を入力することを考えましたが、もっと良い方法があるはずです。

私はNSDictionaryクラスにあまり精通していませんが、それで物事が簡単になると思います。

誰かが私にこれについてのヒントを与えることができますか?

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

macos - NSPopUpButton の複数選択

このような複数選択で NSPopUpButton を作成する方法を知っている人はいません。 ここに画像の説明を入力

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

cocoa - NSPopupButtonのフォーカスリングがタブを押しても表示されない

私の見解はいくつかあり、それらはテキストフィールドの1つの後NSPopupButtonsとして定義されています。newKeyView問題は、タブボタンを押しても無視されるように、どういうわけかフォーカスリングが表示されないことです。彼らがフォーカスリングを取得するために何をすべきですか?

ありがとう、

ナバ

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

objective-c - NSTableView データを NSPopUpButton アイテムに追加する

項目を追加および削除できる NSTableView があります。アイテムがテーブルに追加されたら、それらのアイテムを NSPopUpButton のアイテムとしても表示したいと思います。addItemsWithTitles: メソッドを試しましたが、エラーが発生します。

そのため、配列の objectAtIndex:0 をログに記録しようとしましたが、文字列は取得されませんでしたが、代わりにいくつかの数値が取得されました。

また、参考までに、私のお気に入りのクラスは

0 投票する
3 に答える
9018 参照

objective-c - NSPopUpButton で選択されたオブジェクトを取得するには?

私は学生クラスを持っています:

そして私は学生のリストのためのNSMutableArrayを持っていて、それをこのようにNSPopUpButtonにバインドしました

コンテンツ: studentArray、arrangedObjects コンテンツ値: studentArray、arrangedObjects、名前

これで、次のように学生オブジェクトを取得できます。

NSPopUpButton から学生オブジェクトを直接取得する方法はありますか???? お気に入り:

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

xcode - NSArrayController、NSPopupButtonの適切なバインディング

iOSからMacプログラミングを始めたばかりで、バインディングをいじっていました。

最近選択したディレクトリの履歴を表示する単純なディレクトリポップアップを作成しようとしています。最後の要素が読み取らother...れ、opendialogボックスが開きます。

NSPopupButtonをモデルにバインドする方法がわからないようです。

そのセットアップは次のようになります:MainUIViewController、NSController、NSObjectControllerはすべてnibに接続されています

NIBファイル

MainUIViewControllerのアウトレットをNIBのDirectoryArrayControllerに接続します。各Directoryのクラスと、DirectoryArrayController(NSObject)のクラスがあります。NSPopupButtonを次のように表示します。

DirectoryArrayControllerバインディング

そして、私はDirectoryArrayControllerをDirectoryPopupArrayControllerにバインドしています。

Directory PopupArrayControllerバインディング

これは、Directory PopupArrayControllerに接続されている.hファイルです。

対応する.mファイルに次のコードを使用してサンプルディレクトリ情報を入力します

これがeachDirectory.hのコードです

配列を作成するためのコードを配置し、配列コントローラーをUIViewController.mファイルに直接バインドすると、コードに移動すると、問題なく動作するように見えます。私がやりたいのは、すべての配列を別のクラスファイルで処理し、最終的なディレクトリの選択のみをメインコントローラに戻すことです。上記のようにNSArrayControllerをNIBのオブジェクトコントローラーにバインドすると、ポップアップに何も表示されず、理由がわかりません。

どんな助けでも大歓迎です、長い間投稿して申し訳ありません-ただ自分自身を明確にしたかっただけです。

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

cocoa - NSPopUpButton が正しく選択されない

このコードを使用して、ポップアップボタンをに追加していますNSView:

アプリを起動すると、ボタンに選択肢がありません。ユーザーがそれをクリックして項目の 1 つを選択すると、ボタンは空のままになります。たとえば、3 つの選択肢 (item1、item2、item3) があり、ユーザーが 2 番目の選択肢をクリックすると、「item2」が表示される代わりに何も表示されません。

空の選択

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

objective-c - プログラムでNSPopupButtonのメニューをどのように更新しますか?

これは複数のビューで構成された Core Data アプリで、それぞれが独自の Xib に含まれています。アプリ全体で、さまざまな Core Data エンティティからのデータを表示するいくつかの NSPopupButton があり、バインディングはインターフェイス ビルダーで従来の方法で行われ、すべてうまく機能します。

ポップアップに表示する前にデータを処理する必要があるため、バインドの代わりにプログラムで入力する必要があった 2 つのポップアップ ボタンを除きます。1 つは、@distinctUNionOfObjects を使用する必要があるエンティティに関連しています。もう 1 つは、パーセンテージ (パーセント記号付き) として表示されるように、カスタマイズされた数値書式設定を行う必要がある 10 進数のエンティティに関連しています。

これら 2 つのポップアップを設定するために、関連するビューのデータの配列を awakeFromNib に生成しました。コードは次のとおりです。

結構ですが、(アプリの他のビューのテーブルまたはテキスト フィールドを介して) ポップアップをフィードするこれらのエンティティにデータを追加してから、ポップアップを使用してビューに戻ると、ボタンは新しいコンテンツで更新されません。コンテンツが awakeFromNib で作成されており、関連するビューを再度表示しても Nib が再起動されないためです。しかし、ソース エンティティが変更されたとき、または新しいデータを受信したときに、これらのポップアップ ボタンを自動的に更新するにはどうすればよいでしょうか? アプリを再起動した後にのみ変更が表示されます。

それとも、私が何かを見逃したのかもしれませんが、そもそもインターフェースビルダーのバインディングを介してすべてを行うことができますか?

アドバイスありがとう。

=== [controller rearrangeObjects] が無効であることを指定するように編集します。

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

objective-c - Value Transformer を使用した NSPopupButton バインディング

値トランスフォーマーを使用したバインディングによって設定されたポップアップ ボタンで表示されるものが、本来あるべき方法であるかどうかはわかりません。値トランスフォーマーとテーブル ビュー) は、transformedValue: メソッドの "value" パラメーターが、配列内の個々の文字列ではなく、配列コントローラーにバインドされた配列全体であることです。テーブルビューでこれを行った場合、トランスフォーマーはテーブルに表示された行ごとに1回呼び出され、「値」パラメーターは、コンテンツ配列として機能する配列全体ではなく、その行と列にバインドされているオブジェクトですアレイコントローラー用。

これをテストするための非常に単純なアプリがあります。アプリのデリゲートには次のものがあります。

RDTransformer クラスには次のものがあります。

IB では、ウィンドウに NSPopupButton を追加し、オブジェクト リストに配列コントローラーを追加しました。コントローラーのコンテンツ配列は App Delegate.theData にバインドされ、ポップアップ ボタンのコンテンツ値は値トランスフォーマー testTransformer を使用して Array Controller.arrangedObjects.name にバインドされます。

プログラムを実行すると、TransformedValue: メソッドからのログは次のようになります。

これは、私が SO で見ることができる他の人の経験ではないようです。バインディングまたは値トランスフォーマーのいずれかで間違っていることはありますか?