問題タブ [nstablerowview]
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.
swift - NSTableRowView のドラッグ アンド ドロップ時の奇妙な動作 (ビュー階層に NSView を挿入し続ける)
アプリの奇妙な動作に気づき、それを修正する方法が見つかりません。カスタムNSTableRowViewとドラッグ アンド ドロップをサポートするNSOutlineViewがあります。
アイテム(ファイルなど)を最初にoutlineviewにドラッグすると、正しいハイライトが描画されます( drawDraggingDestinationFeedbackInRectをオーバーライドしました)が、2回目のドラッグでこの青いハイライトが表示され、ビュー階層をデバッグすると、NSViewが行に追加されていることがわかります.
何が起こるかを正確に示す小さなアニメーションを添付しました(同じ NSTableRowView でNSTableViewも追加しました):
上:NSOutlineView
下:NSTableView
ビューの階層 (NSOutlineView の場合):
これがNSTableRowViewの私のコードです
NSOutlineViewのデータソースとデリゲート メソッドは次のとおりです。
私が試したこと:
NSOutlineView をサブクラス化し、acceptsFirstResponder をオーバーライドする
backgroundStyle のオーバーライド
- 別の selectionHighlightStyle を試しました
- NSTableViewDraggingDestinationFeedbackStyleNone を使用
objective-c - NSTableView: 「重複する」行を作成する
目標
アプリに NSTableView があり、「重なり合う」行を描画して、Automator.app のような「接続」効果を作成したいと考えています。
私が試していること
私が検討しているアプローチは、NSTableView の-(NSRect)frameOfCellAtColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex
メソッドを使用して、最初の行以降のすべての行の Y 原点を増やすことです。私の tableView はビューベースで、自動レイアウトを使用しません。
私の質問は、この効果を達成する正しい方法ですか? tableViewにフレームが重なっている行を描画させるのは「危険」に思えますが、これによりtableViewの下部に余分な空白が大量に発生するかどうかわかりません(tableViewは重なりを取りません全体の高さを計算する際にフレームを考慮し、各行の rowHeight 値の合計のみを使用します)。
Automator tableView から効果を達成するための別の標準的な方法があるかどうかは誰にも分かりますか?
cocoa - Interface Builder で NSTableRowView のプロトタイプを作成する方法
ビューベースNSTableView
で、特定の行の外観をカスタマイズしようとしています。
タイトルに記載されているデリゲート メソッドを実装する必要があることは理解しています。しかし、私はそれを行う方法がわかりません。
ドキュメントには次のように記載されています。
デリゲート メソッド tableView:rowViewForRow: を使用して、行ビューをカスタマイズできます。通常、Interface Builder を使用して、テーブル内の NSTableRowView プロトタイプ行を設計およびレイアウトします。プロトタイプ セルと同様に、プロトタイプ行は実行時にプログラムによって取得されます。NSTableRowView サブクラスの実装は完全にオプションです。
ただし、セルとは異なりNSTableRowView
、インターフェイス ビルダーにはクラスがなく、「プロトタイプ」行ビューをセットアップする方法も明確ではありません。
私はこのようなことを試みています(Swift 3):
セルに対して同様のコードが機能しています-つまり、-tableView:viewForTableColumn:row:
.