問題タブ [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.
macos - NSTextFiled は NSTableRowView で制御を失います。なんで?
ビューをグループ化するために NSOutlineview を使用します (ビューは NSOutlineView の左側に配置されます)。そのため、NSTableRowView をビューとしてサブクラス化します。次に、何かを制御するために NSTextField を配置します。しかし、NSTextField は NSTableRowView 内では機能しません。
誰でも私にアドバイスを与えることができます。どうもありがとうございます。
cocoa - COCOA で別のクラスのコントローラーの IBOutlet にアクセスする
次のように IBOutlet を持つコントローラーがあります。
次のようなクラスでアウトレット ( ) にアクセスしたいdetachedWindow
: このサブクラスは、ビュー ベースのテーブル ビューのセル ビューに追加されます。
しかしdetached window outlet is--
、常に戻ってきnull
ます。「HoverTableRowView」クラスでそのアウトレットにアクセスするにはどうすればよいですか?
nsoutlineview - NSOutlineView の行の色と高さの設定 (ビュー ベースおよびソース リスト オプションが選択されている)
デリゲート関数を使用して NSOutlineView をカスタマイズし、次を使用してグループ項目の行の高さと色を調整しました。
これはほとんど機能します。結果は以下のとおりです。セクションの最後の行と次のセクション ヘッダーの間に小さなギャップがあります。これが何であるか、およびそれを削除する方法について、誰でも光を当てることができますか. おそらく何らかのフッターである可能性があります。そうであれば、それを調整するための API はありますか? outlineView:heightOfRowsByItem
下の写真は、完全に削除した場合の写真です。
heightOfRowsByItem を使用しない場合の結果
編集:outlineView backgroundColorをヘッダー行に必要な色に設定し、他の行の色を白に設定することで、これを解決しました。以下に示すように、これでギャップが埋められますが、それでも多少の回避策のようです。
cocoa - NSTableRowViewのサブビューとしてNSImageViewのクリックイベントをキャッチする方法は?
NSTableView には NSTableRowView があり、この行には NSImageView サブビューがあります。質問: この画像のクリック イベントを追跡するにはどうすればよいですか?
macos - カスタムTableRowViewクラスで選択が変更された場合にのみdrawSelectionInRectを呼び出しますか?
私のOSXアプリでは、NSTablRowViewをサブクラス化して、ビューベースのカスタムtableViewのカスタム行選択色を作成しています。
私はそのために次のメソッドオーバーライドを使用しています:
画面上の行の少なくとも 1 つが選択されているときに、このメソッドが常に呼び出されていることに気付きました。
行を常に再描画しない方法があるかどうか興味がありますが、行選択の変更時にのみ実行しますか?!
どんな種類の助けも大歓迎です!
objective-c - NSTableView のデータソースをデバッグするときの奇妙な記述
コンテキスト
の にエラーがありdatasource
ますNSTableView
。
エラーは
* -[NSTableView _uncachedRectHeightOfRow:]、/SourceCache/AppKit/AppKit-1265.19/TableView.subproj/NSTableView.m:1784 でのアサーションの失敗
行でself.tableView scrollRowToVisible:0] ;
。
奇妙な説明
このエラーをデバッグしてデバッガーに入力しようとすると
po [self tableView:self.tableView viewForTableColumn:[self.tableView tableColumns][0] row:0]
私は得る
<NSTableRowView: 0x6000001b7300> - row: -1
.
私の質問は:
これは何
row: -1
ですか?row
( にプロパティが表示されませんNSTableRowView
)この情報は、最初のエラーでどのようなヒントを与えてくれますか?
core-data - NSOutlineView 行のスタイリング
ビューベースのNSOutlineViewにコンテンツを提供するNSTreeControllerを備えたドキュメントベースのCore Dataアプリがあります。最終用途が変更できるデータモデルの永続的な「変換可能な」 NSColor および NSFont 属性に基づいて、行を「スタイリング」(テキストの色、背景色などを設定) しています。新しい行がポップアップすると、データ モデルで設定された色/フォントで表示されます。行の背景色を設定するデリゲート/データソース コードは次のとおりです。
ただし、スタイル属性が変更された場合、関連する表示行を新しいスタイル値で再描画する必要があります。「スタイル」属性が変更されるたびに、NSNotificationCenter を使用して、変更されたスタイルで行を再描画する必要があるモデル オブジェクトと共に、Outline ビュー デリゲートに通知を送信しています。これは、通知を受け取るデリゲートのコードです。
ここで想定しているのは、ツリー コントローラーをナビゲートしてモデル オブジェクトを表すツリー ノードを見つけ、そのツリー ノードの行を再描画するようにアウトライン ビューに要求できることです。これは、オブジェクトを見つけるためにツリーをたどるツリーコントローラーの「追加」コードです。非常に効率的ではありませんが、別の方法はないと思います。
したがって、これが機能して行が再描画される場合と、そうでない場合があります。デリゲート メソッド "styleHasChanged:" は常に呼び出され、ツリー コントローラーは常に対応するツリー ノード (実際には NSTreeNode のサブクラス) を返します。しかし、多くの場合、アウトライン ビューはツリー ノードを認識せず、行は再描画されません。ツリー コントローラーが、以前にアウトライン ビューに与えたものとは異なるツリー ノード オブジェクトを返したようです。しかし、奇妙なことに、それが機能し、正しい行が新しい背景色で再描画されることがあります。行を非表示に折りたたんで再度開くと、正しく再描画されます。
なぜそれが時々機能し、他の時には機能しないのか、誰にも分かりますか?
アウトライン ビューが KVO を使用してこのスタイル設定を自動的に行うように、色/フォント属性を何らかの方法で行と列にバインドできると便利ですが、それは可能ではないと思います。
swift - NSTableview は Swift でプログラムによって selectionHighlightStyle を NSTableViewSelectionHighlightStyleNone に設定します
行を選択した場合、青色の強調表示を無効にしたいと考えています。Swift 言語では、NSTableview の selectionHighlightStyle を NSTableViewSelectionHighlightStyleNone に設定できません。
これは私のコードです:
ステートメントのtableView.selectionHighlightStyle = NSTableViewSelectionHighlightStyleNone
場合、「未解決の識別子 'NSTableViewSelectionHighlightStyleNone' の使用」というエラーがスローされます。