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

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

macos - NSTextFiled は NSTableRowView で制御を失います。なんで?

ここに画像の説明を入力

ビューをグループ化するために NSOutlineview を使用します (ビューは NSOutlineView の左側に配置されます)。そのため、NSTableRowView をビューとしてサブクラス化します。次に、何かを制御するために NSTextField を配置します。しかし、NSTextField は NSTableRowView 内では機能しません。

誰でも私にアドバイスを与えることができます。どうもありがとうございます。

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

cocoa - COCOA で別のクラスのコントローラーの IBOutlet にアクセスする

次のように IBOutlet を持つコントローラーがあります。

次のようなクラスでアウトレット ( ) にアクセスしたいdetachedWindow: このサブクラスは、ビュー ベースのテーブル ビューのセル ビューに追加されます。

しかしdetached window outlet is--、常に戻ってきnullます。「HoverTableRowView」クラスでそのアウトレットにアクセスするにはどうすればよいですか?

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

nsoutlineview - NSOutlineView の行の色と高さの設定 (ビュー ベースおよびソース リスト オプションが選択されている)

デリゲート関数を使用して NSOutlineView をカスタマイズし、次を使用してグループ項目の行の高さと色を調整しました。

これはほとんど機能します。結果は以下のとおりです。セクションの最後の行と次のセクション ヘッダーの間に小さなギャップがあります。これが何であるか、およびそれを削除する方法について、誰でも光を当てることができますか. おそらく何らかのフッターである可能性があります。そうであれば、それを調整するための API はありますか? outlineView:heightOfRowsByItem 下の写真は、完全に削除した場合の写真です。

ここに画像の説明を入力

heightOfRowsByItem を使用しない場合の結果

heightOfRowsByItem を使用しない場合の結果

編集:outlineView backgroundColorをヘッダー行に必要な色に設定し、他の行の色を白に設定することで、これを解決しました。以下に示すように、これでギャップが埋められますが、それでも多少の回避策のようです。

ここに画像の説明を入力

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

cocoa - NSTableRowViewのサブビューとしてNSImageViewのクリックイベントをキャッチする方法は?

NSTableView には NSTableRowView があり、この行には NSImageView サブビューがあります。質問: この画像のクリック イベントを追跡するにはどうすればよいですか?

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

macos - カスタムTableRowViewクラスで選択が変更された場合にのみdrawSelectionInRectを呼び出しますか?

私のOSXアプリでは、NSTablRowViewをサブクラス化して、ビューベースのカスタムtableViewのカスタム行選択色を作成しています。

私はそのために次のメソッドオーバーライドを使用しています:

画面上の行の少なくとも 1 つが選択されているときに、このメソッドが常に呼び出されていることに気付きました。

行を常に再描画しない方法があるかどうか興味がありますが、行選択の変更時にのみ実行しますか?!

どんな種類の助けも大歓迎です!

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

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)

  • この情報は、最初のエラーでどのようなヒントを与えてくれますか?

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

core-data - NSOutlineView 行のスタイリング

ビューベースのNSOutlineViewにコンテンツを提供するNSTreeControllerを備えたドキュメントベースのCore Dataアプリがあります。最終用途が変更できるデータモデルの永続的な「変換可能な」 NSColor および NSFont 属性に基づいて、行を「スタイリング」(テキストの色、背景色などを設定) しています。新しい行がポップアップすると、データ モデルで設定された色/フォントで表示されます。行の背景色を設定するデリゲート/データソース コードは次のとおりです。

ただし、スタイル属性が変更された場合、関連する表示行を新しいスタイル値で再描画する必要があります。「スタイル」属性が変更されるたびに、NSNotificationCenter を使用して、変更されたスタイルで行を再描画する必要があるモデル オブジェクトと共に、Outline ビュー デリゲートに通知を送信しています。これは、通知を受け取るデリゲートのコードです。

ここで想定しているのは、ツリー コントローラーをナビゲートしてモデル オブジェクトを表すツリー ノードを見つけ、そのツリー ノードの行を再描画するようにアウトライン ビューに要求できることです。これは、オブジェクトを見つけるためにツリーをたどるツリーコントローラーの「追加」コードです。非常に効率的ではありませんが、別の方法はないと思います。

したがって、これが機能して行が再描画される場合と、そうでない場合があります。デリゲート メソッド "styleHasChanged:" は常に呼び出され、ツリー コントローラーは常に対応するツリー ノード (実際には NSTreeNode のサブクラス) を返します。しかし、多くの場合、アウトライン ビューはツリー ノードを認識せず、行は再描画されません。ツリー コントローラーが、以前にアウトライン ビューに与えたものとは異なるツリー ノード オブジェクトを返したようです。しかし、奇妙なことに、それが機能し、正しい行が新しい背景色で再描画されることがあります。行を非表示に折りたたんで再度開くと、正しく再描画されます。

なぜそれが時々機能し、他の時には機能しないのか、誰にも分かりますか?

アウトライン ビューが KVO を使用してこのスタイル設定を自動的に行うように、色/フォント属性を何らかの方法で行と列にバインドできると便利ですが、それは可能ではないと思います。

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

swift - NSTableview は Swift でプログラムによって selectionHighlightStyle を NSTableViewSelectionHighlightStyleNone に設定します

行を選択した場合、青色の強調表示を無効にしたいと考えています。Swift 言語では、NSTableview の selectionHighlightStyle を NSTableViewSelectionHighlightStyleNone に設定できません。

これは私のコードです:

ステートメントのtableView.selectionHighlightStyle = NSTableViewSelectionHighlightStyleNone場合、「未解決の識別子 'NSTableViewSelectionHighlightStyleNone' の使用」というエラーがスローされます。

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

objective-c - ビューベースの NSTableView 選択?

次のように、ビューベースのテーブルビューを作成しました。 ここに画像の説明を入力

NSTableRowView で選択範囲を描画します。コードは次のようになります。

しかし、最後に、TableRowView が tableView の上にないことがわかったので、selectedColor は画像とボタンをカバーしていません。背景色に似ていますが、選択した TableRowView が次のようにビューをカバーする必要があります。

ここに画像の説明を入力

選択した色が画像とボタンを覆います。私はグーグルで検索しましたが、アイデアは見つかりませんでした。助けてくれてありがとう〜