問題タブ [nsmatrix]
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.
objective-c - プログラムでNSMatrixのアイテムを選択する
NSMatrixのアイテムの1つをプログラムで選択するにはどうすればよいですか?NSControlだと思うので、その特定のドキュメントを調べていましたが、特定のトピックに関する情報は見つかりませんでした。
selection - NSMatrix でプログラムによるセルの選択解除が機能しない
プログラムから NSMatrix 内のすべてのセルを選択解除できるようにしたいと考えています。
使用してdeSelectAllCells
いますが、正しく動作しません。常に少なくとも 1 つのセルが選択されたままになります。
より具体的には、効果がないように見えるモードのすべての可能な設定を試しました。また、allowsEmptySelection を YES に設定しようとしましたが、効果はありませんでした。mouseDown、mouseUp、および mouseDragged を使用して、選択の動作を制御し、ユーザーがセル、行、または列を選択できるようにします。コマンドキーとの組み合わせも可能です。
選択が完了すると、ユーザーは別のウィンドウからアクションを選択します。ウィンドウをクリックすると、最後の選択が灰色になり、アクション内で deSelectAllCells が呼び出された後、灰色の選択を除くすべての選択が削除されます。ここでマトリックス ウィンドウをクリックすると、灰色の選択がデフォルトの選択色に戻ります。1 つだけ選択した場合でも、同じ動作が発生します。
objective-c - How to change selection of NSMatrix in IBAction?
I have NSRadioModeMatrix
with 3 cells. - (IBAction) EnableProxy:(id)inSender
is connected to NSRadioModeMatrix
When condition is true. selection is going back to tag 2(old selected cell).Sample project.
objective-c - プログラムで NSMatrix 選択を設定すると、後で選択したセルを取得しようとしたときにミューテックス ロックが発生する
概要
Xcode 4.3.2 を使用して開発し、Mac OS X 10.7.5 (Mac OS X 10.6 をターゲット) でテストしている Mac OS X Cocoa アプリで奇妙な問題が発生しています。メインNIBには、メインコントローラーに1つのアウトレットと1つのアクションがありますが、他の2つの方法でも使用されます(メインコントローラーでも使用されます)。このアクションは、選択されたタグを NSUserDefaults に保存し、選択されているものに基づいて NSTextField を有効/無効にします。以下サンプル)。
基本的なことですが、ある場合 (GUI のラジオ ボタンをクリックするのではなく、プログラムで NSMatrix のセルを選択した場合)、アプリはミューテックス ロックで PWOD します。
コードと機能
以下の変数とメソッドの名前を変更しましたが、コードの他の構造は変更していません。passwordRadioGroup
IBアウトレットですNSMatrix*
。
アプリが起動されると、メイン コントローラーにメッセージが送信され、applicationDidFinishLaunching
その loadPasswordSettings
メッセージがそれ自体に送信されます。loadPasswordSettings
その後、送信[[passwordRadioGroup selectedCell] tag]
して送信します[passwordRadioGroup selectCellWithTag:]
。これは正しく機能し、正しいラジオ ボタンが GUI で選択されます。最後に を呼び出し[self selectPasswordType:passwordRadioGroup
(これも を正常に呼び出します[[passwordRadioGroup selectedCell] tag]
)、テキスト フィールドを適切に有効化/無効化し、タグを NSUserDefaults に書き戻します (通常、常に冗長ではありません)。
任意のラジオ ボタンを選択するselectPasswordType:
と、メイン コントローラーにメッセージが送信されます ( のインスタンスを渡しますpasswordRadioGroup
。デバッガーでメモリ アドレスを確認し、ivar を調べることができます)。これにより、タグが正常に呼び出さ[[passwordRadioGroup selectedCell] tag]
れ、NSUserDefaults に保存されます。
上記の 2 つは問題なく何度でも実行できます。終了して再起動すると、ラジオボタンが最後に残った状態に正しく復元されるため、選択したタグを確実に正しく取得し、NSUser のデフォルトに保存し、NSUserDefaults から取得し、NSMatrix のタグで選択したセルを設定します。
ここが厄介なところです:
クリックすると、他の多くの作業を実行し、最終的generateUserPassword
にそれ自体にメッセージを送信してパスワードを生成する別のボタンがあります (これもすべてメイン コントローラーで実行され、メイン スレッドで実行されます)。それが最初に行うことは何ですか?呼び出します[[passwordRadioGroup selectedCell] tag]
。上に示したように、好きなだけ安全に行うことができますよね?
ラジオ ボタンの 1 つを選択すると、選択したセルが GUI を介して変更され、selectPasswordType:
メッセージがメイン コントローラーに再度送信されます。問題は発生しません (ただし、少し遅く、PWOD のように見えることは認めます)。
起動後に NSMatrix をクリックしない場合(つまり、GUI から再度選択/アクションを強制しない場合)、その[[passwordRadioGroup selectedCell] tag]
呼び出しgenerateUserPassword
はすぐに PWOD になります。Xcode のデバッガーで一時停止ボタンを押して現在の場所を確認すると、常にメイン スレッドでpsych_mutexwait
(から呼び出されて) います。プログラムで呼び出されず、問題なく実行できたclass_lookupMethodAndLoadCache
場合、少なくともある程度の正気は残っていたでしょう。selectPasswordType:
[[passwordRadioGroup selectedCell] tag]
ヘルプ!
繰り返しますが、デバッガーでこれを実行したところ、メモリ アドレスと ivarpasswordRadioGroup
が変更されておらず、割り当てが解除されていないことを確認できます (「ゾンビ オブジェクト」を有効にして & なしで試しました)。passwordRadioGroup
私のメインコントローラーでの唯一の参照は、上記のものです。あらゆる種類の NSMatrix/radio/ selectCellWithTag
/ selectedCell
/ selectedTag
/ class_lookupMethodAndLoadCache
/mutex 用語 / 組み合わせのグーグル検索は実りがありませんでした。
解決策、トラブルシューティングの提案、または考えをいただければ幸いです。当然のことながら、愚かさへの平手打ちも歓迎します。
cocoa - 10.7ライオンに隠されたNSMatrix
アプリのさまざまな場所に2つのNSMatrix
ラジオコントロールがあります。私は10.8で開発しており、10.8 SDKを使用し、10.7をターゲットにしています。マトリックスは私の開発用コンピューターでは完全に機能しますが、10.7を実行しているMacでテストすると、どちらのマトリックスも表示されません。自動レイアウトストラットをチェックし、非表示に設定されていないことを確認しました。それらはまったく表示されていません。
ios - オブジェクト C の NSRadioButton で選択されたセルを取得する
2行1列のラジオボタンを作成してアクションを設定しましたが、正しく機能しません。常にセルタグ= 0を選択しました。これは私のコードです:
手伝って頂けますか?前もって感謝します
macos - NSBrowser でカスタム NSMatrix を設定する方法
NSBrowser の背景色をカスタマイズしようとしています。これを行うには、NSMatrix をサブクラス化し、setMatrixClass: を使用して列のマトリックス クラスとして新しいクラスを設定し、drawRect: を使用してマトリックスをカスタマイズします。
ブレークポイントを使用して、NSBrowser によってカスタム クラスがその matrixClass として設定されていることを確認できます。ただし、マトリックス クラスのブレークポイントがヒットすることはありません (テストとして、drawRect、drawLayer、および awakeFromNib の 4 つのコンストラクターすべてをオーバーライドしました)。私のNSBrowserがmatrixClassを無視しているように、何も起こりません。
何かが起こるかどうかを確認するために、NSBrowser のマトリックス クラスを NSApplication に設定してみました。繰り返しますが、結果はありません。確かに、これはある種のクラッシュを引き起こしたはずですか?setMatrixClass: でも機能しますか?
objective-c - ココアでラジオボタンの選択を解除する方法
私は初心者です。NSMatrix に問題があります。複数の NSMatrix を作成しましたが、最初にロードしたいのですが、チェックされていません。このコードを使用してそれらを作成しましたが、常にチェックされました。
何か案は?どうもありがとう
nsmatrix - スプレッドシート実装用の NSMatrix ?
さて、NSMatrix を使用して、この画像に似たものを実装したいと思います。
私の「テーブル」は大きくなります(両方向にスクロール可能)。
NSMatrix セルがすべて同じサイズであるという前提条件を認識しています。
提案された解決策は次のとおりです。
- 白血球は主な NSMatrix を構成します
- 濃い灰色のヘッダー セルの一番上の行 (一番左のものを除く) は、別の NSMatrix です。
- セルの左端の列 (上の列を含む) は、別の NSMatrix です。
白いセルを NSClipView/NSScrollView に埋め込み、スクローラーを表示します。上と左のマトリックスも同様に埋め込みますが、個別の NSClipView/NSScrollView ペアを使用し、スクローラーを表示しません。
次に、メインの可視 NSScrollView は、必要に応じて他の NSScrollView の移動を通知します。
これは、この問題の典型的な解決策ですか? または、私が気付いていない他のカスタムっぽいビューがありますか?
もう 1 つ: メインの NSMatrix のコンテンツが NSArrayController にバインドされている場合、マトリックスの 2D 性は 1 次元の NSArray でどのように具体化されるのでしょうか?