問題タブ [nscombobox]
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.
cocoa - Cocoa-Bindings:NSComboBoxの選択をNSObjectControllerのフィールドにバインドします
私のアプリケーションでは、NSObjectControllerがユーザーインターフェイスのすべてのコントロールにバインドされています。これは今のところうまく機能します。私が抱えている唯一の問題は、NSComboBoxの選択を同じObjectControllerにバインドすることです。今日私が知っている限り、ComboBoxの値は常に文字列であるため、OBjectControllerのクラスのフィールドもNSStringです。私にとっては簡単に聞こえますが、機能しません。
私は常に「...クラスはキーのキー値コーディングに準拠していません...」を取得します。
ComboBox自体の項目は、他のコントローラーであるNSArrayControllerからのものです。しかし、その部分は正常に機能します。配列のすべてのアイテムは、ComboBoxのアイテムです。私が抱えている問題は、選択をObjectControllerに取り込むことです。
objective-c - 選択したインデックスを NSComboBox から取得できません
indexOfSelectedItem を使用して、データソースを持つ NSComboBox の選択されたインデックスを取得しようとしています。
idx は常に -1 を返します。
InterfaceBuilder で NSComboBox の内部リストを定義しても同じ結果が得られます。
選択したインデックスを取得する他の方法はありますか?
objective-c - NSComboBox-選択した情報とNSComboBoxDataSourceを取得します
私の人生の間、私は絶えず困惑していNSComboBox
ます。
NSComboBoxDataSource
プロトコルに準拠するオブジェクトを作成し、次のように実装しました。
データソースを使用するようにインスタンスを設定し、NSComboBox
このオブジェクトをソースとして設定しました。これはうまく機能します。私の実装はアイテムの数を返し、NSString
特定のインデックスのアイテムの値を返します。
それから、何かが選択されたときに何かをしたいと思います。これが私の問題の始まりです。NSComboBoxDataSource
コンボボックス内のアイテムの選択を処理するためにプロトコルをオーバーライドする明確な方法はありません。
したがって、オブジェクトを次のように準拠させNSComboBoxDelegate
て実装することもできます。
残念ながら、選択時とは異なりNSTableView
、通知のオブジェクトはNSComboBox
選択されたアイテムのオブジェクトではありません。「ファイン」私は自分自身に言います、私はNSComboBox
メソッドを呼び出します:
これにより、選択したアイテムが返され、そこから移動できます。ただし、そのメソッドは、usesDataSource
がに設定されている場合にのみ呼び出されNO
ます。これは私の場合ではありません。これを使うと警告が飛び出します。
だから、私の質問は、NSComboBox
データソースを使用しているときに選択を処理する適切な方法は何ですか?
cocoa - NSComboBox を HTML コンボのように動作させる
NSComboBox に表示される値が、objectValueOfSelectedItem で取得される値と異なる可能性はありますか?
オブジェクトの文字列名が表示されますが、文字列名の代わりに int recordId が返されますか? もちろん、選択したインデックスを使用してソース配列から取得する以外は...
cocoa - Core Data で使用するための NSComboBox の正しいバインディングは何ですか?
2 つのエンティティ (Employee と Department) を持つ Core Data アプリを作成する場合を想像してみてください。従業員は部門 (部門) と対 1 の関係を持ち、逆は対多の関係 (従業員) です。UI では、個々の Employee エンティティを選択し、詳細領域で詳細を編集できます (もちろん他の属性があり、Department エンティティを追加および編集するための UI があります)。ポップアップ ボタンを使用する場合のバインディングは次のとおりです。
コンテンツ =PopUpArrayController.arrangedObjects
コンテンツ値 = PopUpArrayController.arrangedObjects.name
(名前は NSString です)
選択されたオブジェクト =EmployeeArrayController.selection.department.name
これにより、ポップアップ メニューですべての部門を表示し、現在の従業員の部門を正しく選択し、その部門を期待どおりに変更することができます。目標は、NSComboBox でこれを変更して、ユーザーがタブでボックスに移動し、マウスに切り替えることなく部門名を入力できるようにすることです。これを達成するために、さまざまなバインディングを試しました。これらのバインディングを使用して、1回の実行で機能することさえありました。
コンテンツ =PopUpArrayController.arrangedObjects.name
値 =EmployeeArrayController.selection.department.name
少なくとも 1 回は、これが期待どおりに機能しました (入力されたテキストが既存の部門と一致しない場合でも、新しい部門が追加されました)。ただし、利用可能な部門とオートコンプリートが表示されるようになりましたが、コンボ ボックスで値が変更されたときにモデルが正しい値で更新されません。ポップアップで部門を設定または変更すると、正しい部門がコンボボックスに表示されます。
誰かが私が欠けているものを知っていますか? ありがとう。
objective-c - KVCでNSComboBoxの値を設定するにはどうすればよいですか?
Interface BuilderでいくつかのNSComboBoxを作成し、1つはプログラムで作成しました。
InterfaceBuilderで作成されたNSComboBoxは完璧です。私はそれらの値を共有ユーザーデフォルトコントローラーにバインドしていて、それらのビューが開かれると、それらは正しい値でそこに座っています。重要なことに、この値はNSComboBoxに「通常の」テキストとして表示されます。つまり、値は選択されていないように見えます。これが私が欲しいものです。
プログラムで作成されたNSComboBoxの場合、selectItemAtIndex:0を使用して値を設定します。これを行うと、正しい項目が選択されますが、テキストは選択されたように見えます。つまり、それは強調表示され、すべてです。これは欲しくない。これが私が試みた回避策です:
(i)フィールドエディタを取得し、挿入ポイントをテキストの最後に設定します。奇妙なことに、これを行うと、フィールドエディタの文字列がnilまたは空になりますが、これは機能しません。これがフィールドエディタの正しい動作かどうかはわかりません。
(ii)setObjectValue、takeStringValueFromなど、コンボボックスの値を設定する他のさまざまな方法を試します。
(iii)最後に、そして最も苛立たしいことに、[myComboBox setValue:@ "The Default Item" forKey:@"value"]を使用してNSComboBoxの値を設定しようとしました。これはobjc_exception_throwで失敗します。おそらく、そのようなKVCキーがないためです。しかし、コンボボックスの値は、インターフェイスビルダーで機能するため、KVOで設定できることを知っています。正しいキーパスがわからないと思います。イントロスペクションを使用してすべてのプロパティを列挙しようとしましたが、コードを正しく機能させることができません(objc_property_tが期待されるヘッダーにありません)。
だから、私は2つの質問があります:
まず、ボックス内のテキストが選択されないように、プログラムでNSComboBoxのデフォルト値を設定する方法を知っている人はいますか?それに関しては、新しいNSComboBoxCellサブクラスを含め、これを行うためにあらゆる努力をします。
次に、誰かがIBがNSComboBoxの値を設定するために使用しているキーまたはキーパスを教えてもらえますか?あるいは、なぜこれを行うための私の努力が失敗しているのですか?
私はこれに何時間も取り組んできました、そして私は本当に意気消沈しています!
ありがとう、mustISignUp!これを修正してくれてとてもうれしいです。少しのフォローアップ:
(i)テキストの選択は間違いなくフォーカスによって引き起こされます。setRefusesFirstResponder:YESを呼び出すと、問題が修正されます。残念ながら、ウィンドウは本当にこのコンボボックスに焦点を合わせたいと考えています。これは、refusesFirstResponderをNOに戻すと(後でウィンドウの開始後に)テキストが再び選択されるためです(ユーザーが必要に応じてこのボックスに焦点を合わせることができるようにしたいと思います)。したがって、私の場合、決定的な解決策は[window makeFirstResponder:otherControl]を呼び出すことでした。奇妙なことに、[window makeFirstResponder:nil]は機能しません。なぜ何かアイデアはありますか?
(ii)バインディングとプロパティの違いを指摘していただきありがとうございます。この質問を調べながら、たくさんのことを学びました。1つは、-(NSArray *)exposedBindingsを呼び出すことでバインディングのリストを取得できることを学びました。これは、NSComboBoxの場合は(fontSize、alignment、toolTip、fontName、enabled、contentValues、fontFamilyName、font、hidden、fontItalic、textColor、value 、コンテンツ、編集可能、fontBold)。次に、[myComboBox bind:@ "value" toObject:[NSMutableString stringWithString:@ "defaultValue"] withKeyPath:@ "string" options:nil]を使用して値を設定できました。ここで、NSMutableStringには「文字列」をプロパティに追加します。最後に、これは実際にはテキスト選択の「問題」を修正しません。
したがって、残っている唯一の質問は、[window makeFirstResponder:nil]がコンボボックスからフォーカスを外すために機能しない理由かもしれません。それほど重要ではありませんが、誰かがアイデアを持っているかどうか知りたいです。
cocoa - NSComboBoxをNSTextFieldに簡単に変換する
NSComboBoxを持っていますが、それを通常のNSTextFieldに変換する簡単な方法があるかどうか疑問に思っていました。NSCombBoxがNSTextFieldのサブクラスであることを考えると、これをオン/オフにする簡単な方法があると思いますが、理解できません。
cocoa - NOOB コードから結果を取得する際の問題 (より具体的には NSComboBox を使用)
これはおそらく簡単な質問だと思いますが、これを理解するために頭を悩ませているのは次のとおりです。
私はこれを知っています:
}
指定されたインデックスでアイテムを返します。私の質問は、このルーチンを呼び出すためにどのコードを使用する必要があるかということです。
私はこのようなことを試しました:
しかし、「エラー:「コンボボックス」が宣言されていません」というメッセージが表示されます
私が台無しにしているという概念を誰かが助けてくれますか?
objective-c - NSComboBox を非表示または透明にする方法
こんにちは、NSComboBox を透明にしようとしていますが、機能していません。次の方法で試しています。
しかし、NSComboBox は setTransparent も NSComboBoxCell も NSTextField も実装していないようです。提案と回答をお待ちしております。
よろしくウメール
objective-c - プログラムでNSComboBoxのリストを開く方法は?
私はしばらくこれを回避してきました..これは簡単な作業だと思いましたが、=Dではありません
私がやろうとしているのは、ユーザーがコンボボックスをクリックしたときにコンボボックスのリストを表示することですが、ボタンでは特に表示しません。
何か案が?前もって感謝します!