問題タブ [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.

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

objective-c - プログラムでNSMatrixのアイテムを選択する

NSMatrixのアイテムの1つをプログラムで選択するにはどうすればよいですか?NSControlだと思うので、その特定のドキュメントを調べていましたが、特定のトピックに関する情報は見つかりませんでした。

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

selection - NSMatrix でプログラムによるセルの選択解除が機能しない

プログラムから NSMatrix 内のすべてのセルを選択解除できるようにしたいと考えています。
使用してdeSelectAllCellsいますが、正しく動作しません。常に少なくとも 1 つのセルが選択されたままになります。

より具体的には、効果がないように見えるモードのすべての可能な設定を試しました。また、allowsEmptySelection を YES に設定しようとしましたが、効果はありませんでした。mouseDown、mouseUp、および mouseDragged を使用して、選択の動作を制御し、ユーザーがセル、行、または列を選択できるようにします。コマンドキーとの組み合わせも可能です。

選択が完了すると、ユーザーは別のウィンドウからアクションを選択します。ウィンドウをクリックすると、最後の選択が灰色になり、アクション内で deSelectAllCells が呼び出された後、灰色の選択を除くすべての選択が削除されます。ここでマトリックス ウィンドウをクリックすると、灰色の選択がデフォルトの選択色に戻ります。1 つだけ選択した場合でも、同じ動作が発生します。

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

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.

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

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 します。

コードと機能

以下の変数とメソッドの名前を変更しましたが、コードの他の構造は変更していません。passwordRadioGroupIBアウトレットです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 用語 / 組み合わせのグーグル検索は実りがありませんでした。

解決策、トラブルシューティングの提案、または考えをいただければ幸いです。当然のことながら、愚かさへの平手打ちも歓迎します。

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

cocoa - 10.7ライオンに隠されたNSMatrix

アプリのさまざまな場所に2つのNSMatrixラジオコントロールがあります。私は10.8で開発しており、10.8 SDKを使用し、10.7をターゲットにしています。マトリックスは私の開発用コンピューターでは完全に機能しますが、10.7を実行しているMacでテストすると、どちらのマトリックスも表示されません。自動レイアウトストラットをチェックし、非表示に設定されていないことを確認しました。それらはまったく表示されていません。

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

ios - オブジェクト C の NSRadioButton で選択されたセルを取得する

2行1列のラジオボタンを作成してアクションを設定しましたが、正しく機能しません。常にセルタグ= 0を選択しました。これは私のコードです:

手伝って頂けますか?前もって感謝します

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

macos - NSBrowser でカスタム NSMatrix を設定する方法

NSBrowser の背景色をカスタマイズしようとしています。これを行うには、NSMatrix をサブクラス化し、setMatrixClass: を使用して列のマトリックス クラスとして新しいクラスを設定し、drawRect: を使用してマトリックスをカスタマイズします。

ブレークポイントを使用して、NSBrowser によってカスタム クラスがその matrixClass として設定されていることを確認できます。ただし、マトリックス クラスのブレークポイントがヒットすることはありません (テストとして、drawRect、drawLayer、および awakeFromNib の 4 つのコンストラクターすべてをオーバーライドしました)。私のNSBrowserがmatrixClassを無視しているように、何も起こりません。

何かが起こるかどうかを確認するために、NSBrowser のマトリックス クラスを NSApplication に設定してみました。繰り返しますが、結果はありません。確かに、これはある種のクラッシュを引き起こしたはずですか?setMatrixClass: でも機能しますか?

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

objective-c - ココアでラジオボタンの選択を解除する方法

私は初心者です。NSMatrix に問題があります。複数の NSMatrix を作成しましたが、最初にロードしたいのですが、チェックされていません。このコードを使用してそれらを作成しましたが、常にチェックされました。

何か案は?どうもありがとう

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

nsmatrix - スプレッドシート実装用の NSMatrix ?

さて、NSMatrix を使用して、この画像に似たものを実装したいと思います。

ここに画像の説明を入力

私の「テーブル」は大きくなります(両方向にスクロール可能)。

NSMatrix セルがすべて同じサイズであるという前提条件を認識しています。

提案された解決策は次のとおりです。

  1. 白血球は主な NSMatrix を構成します
  2. 濃い灰色のヘッダー セルの一番上の行 (一番左のものを除く) は、別の NSMatrix です。
  3. セルの左端の列 (上の列を含む) は、別の NSMatrix です。

白いセルを NSClipView/NSScrollView に埋め込み、スクローラーを表示します。上と左のマトリックスも同様に埋め込みますが、個別の NSClipView/NSScrollView ペアを使用し、スクローラーを表示しません。

次に、メインの可視 NSScrollView は、必要に応じて他の NSScrollView の移動を通知します。

これは、この問題の典型的な解決策ですか? または、私が気付いていない他のカスタムっぽいビューがありますか?

もう 1 つ: メインの NSMatrix のコンテンツが NSArrayController にバインドされている場合、マトリックスの 2D 性は 1 次元の NSArray でどのように具体化されるのでしょうか?