問題タブ [nstableviewcell]
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 - テーブル ビュー セルでボタンの選択された行を追跡するにはどうすればよいですか?
これと同様に 、テーブル ビュー セル内のボタンのインデックス パスを追跡するにはどうすればよいですか?
テーブル セルのボタンをクリックしたときに、**NSTableView**** の行インデックスを選択する方法はありますか。
objective-c - ビューベースの NSTableView 選択の強調表示
iOS アプリケーションを Mac に移植しようとしていますが、移行中にいくつかの問題に遭遇しました。のカスタマイズもその一つですNSTableView
。NSCell
とNSTableRowView
カスタムNSView
ベースの違いは何NSTableview
ですか? 最初はビュー ベースNSTableView
で始めましたが、選択を自分で処理する必要があることにすぐに気付きました。私はそれをやってのけることができなかったのでNSTableRowView
、奇妙なことに、カスタムの初期化子を呼び出さないを使用し続けましたNSTableRowView
。
基本的に、選択可能なカスタム コンテンツを含むカスタム テーブル ビュー セルが必要です。それを行う最良の方法は何ですか?
iOS では、サブクラスUITableViewCell
化して selectedView プロパティを設定するだけです。Mac では、これはそれよりも複雑なようです。
cocoa - NSTableView のセルとして使用されている NSView の自動レイアウト
NSTableView
Thingsがレイアウトを行う方法と同様
のものを構築しようとしています。
彼らがやっていることはNSTableView
、カスタム描画されたを使用していると思いますNSTableCell
-または、おそらくそれはNSSegmentedControl
. NSTableCell
ルートを下ろうとしています。をサブクラス化し、カスタム セルを描画しようとしましたNSTableCellView
(これはすべてテスト用の init メソッドにあります)。
かなり自明のようですが、実際には機能しません。制約を満たすことができないというエラーが発生します。サブクラス内で autolayout を使用することはできませんNSTableCellView
か?
cocoa - ビューベースの NSTableView 内の自動レイアウト
行を作成する NSTableView (ビューベース) があります。
この行はいくつかのサブビューを作成し、いくつかの制約を割り当てます。
実際に制約を編集しようとすると、楽しみが始まります..viewWithBackgroundは、背景を設定する空のNSViewです。制約が |[viewWithBackground]| の場合 水平方向と垂直方向の両方で、期待される結果が得られます-緑色の行。これを最も基本的な |-[viewWithBackground]-| に変更すると、明らかに予期しない結果が得られます。赤い行が表示され、緑色のビューの兆候はありません!
ここで実行する必要がある追加の手順はありますか? 私の目標は、viewWithBackground を実際には少し小さいビューにして、行間の「ギャップ」とテーブル ビューの端からの間隔を偽造することです。
cocoa - テキスト フィールドの初期サイズが間違っている (NSTableView)
を持つ単一の列NSTableView
(ビューベース)がありTextField
ます。自動レイアウトと IB を使用しています。ウィンドウ内のほとんどのビュー、特にテーブルはサイズ変更可能です。属性付きのテキストを TextField に入れています。アプリケーションが (IB で指定されているように) TextField の幅以下のテーブル幅で開始した場合、すべてがうまく機能します。一方、最初に表示されるテーブルの幅が広すぎる場合は、TextField が小さすぎて、テキストが折り返されて左側のスペースが大きくなります。テーブルのサイズを変更すると、アプリケーションが再起動されるまで TextField の幅が自動的に修正されます。
tableView viewForTableColumn 内で、標準の makeViewWithIdentifier を使用して NSTableCellView を取得します。フレームサイズを大きくしようとしましたが、効果がありませんでした。フレームはペン先の値と一致します (予想通り)。唯一の制約はテーブル セル ビューにあり、テーブルのサイズ変更に伴って強制的に拡大および縮小されますが、ユーザーがテーブルの幅を縮小した後でのみです。
テーブルを保持する Bordered Scroll View で何かが起こっていますか? NSTableCellView の幅を調整するように強制する場所はどこですか?
ユーザーが手動でサイズ変更する前:
サイズ変更後:
ありがとう...
objective-c - カスタム NSTableCellView
カスタム NSTableCellView で NSTableView を作成したいのですが、これまでに行ったことは次のとおりです。
AppDelegate.h :
AppDelegate.m :
しかし、オブジェクトを追加しようとしても何も起こりません... TheView は NSTableCellView のサブクラスで、単純な四角形を描画しています。もちろん、NSTableViewDataSource と NSTableViewDelegate を追加しました。
更新 2
コードをさらに調査したnumberOfRowsInTableView
結果、tableContent の結果が空であるか、配列を初期化したオブジェクトの数であることがわかりました...
nstableview - セルベースの NSTableView でセル編集の開始を検出する
に編集可能なセルがいくつかありNSTableView
ます。
セルをダブルクリックして入力します。ウィンドウに他のボタンがあります。ボタンをクリックすると、セルの編集が終了し、セルに何も表示されず、 を呼び出しても NSTableView が更新されません[myTableView reloadData]
。
考えられる回避策は、セル編集を開始したらすぐにすべてのボタンを無効にすることNSTableView
ですが、これを検出する方法がわかりません。
何かが入力されるとすぐに物事をキャプチャできます:
しかし、これは私が望むものではありません。ユーザーがセルエディターに入力した後にのみ呼び出されるため、遅すぎます。
まだ何も入力されていなくても、セルの編集がいつ開始されるかを正確に検出したい。
考えられる結果を含むいくつかの投稿を見てきました。
最初にウィンドウが firstResponder になるように要求し (したがって、firstReponder をフォーカスされたフィールドから遠ざけます)、それが失敗した場合は、NSWindow の粗雑な「endEditingFor:」メソッドに頼るのが最善です。
しかし、これは私にとってギリシャ語です。どんな助けでも大歓迎です。