問題タブ [nscell]

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 投票する
5 に答える
4317 参照

objective-c - NSOutlineView開示画像の変更

私はアウトラインビューで、カスタムセルを追加しています。カスタムセルを描画するには、Cocoaドキュメントにあるサンプルコードを参照しています。

http://www.martinkahr.com/2007/05/04/nscell-image-and-text-sample/

セルの開示画像をカスタム画像に変更したいのですが、以下のことを試してみました

しかし、それも機能していません。開示画像を変更する他の方法はありますか。また、アイテムが展開されているか折りたたまれているかをwillDisplayCellで確認できるので、それに応じて画像を設定できます。

開示イメージを変えるのはここだけですか?

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

cocoa - NSCell カスタム ハイライト

NSCellカスタム背景ハイライトを描画するためにサブクラス化しようとしています。ドキュメントは、オーバーライドによりこれを実行できるようにする必要があることを示唆しているhighlight:withFrame:inView:ようですが、メソッドは呼び出されません。

代わりに、どちらがうまく機能するかをオーバーライドdrawInteriorWithFrame:inView:しました。セルに必要なものを描画できます。ただし、問題は、自分ですべてを描画する必要があり、拡張しているタイプの NSCell の機能 (たとえば、テキストを表示する NSTextFieldCell の機能) が失われることです。

カスタム描画された強調表示されたセル:

ここに画像の説明を入力

ただし、背景 (ハイライト) を再描画し、拡張セルの主な機能を使用する機能を保持したいだけです。

ここに画像の説明を入力

もちろん、自分でテキストを描くこともできますが、これを行うより簡単な方法があることを願っています.

どんな助けでも大歓迎です。

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

objective-c - NSOutlineViewグループ行の色の変更

NSOutlineviewで、NSTextFieldCellからサブクラス化されたカスタムセルを使用しています。グループ行と通常の行を選択すると、異なる色を描画する必要があります。

そうするために、私は次のことをしました、

はい、プライベートAPIは知っていますが、他の方法は見つかりませんでした。これは通常の行では非常にうまく機能していますが、グループ行には影響しません。グループの色を変更する方法はありますか。

よろしくローハン

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

cocoa - NSCell は NSTableView から削除されません

カスタム NSCell で満たされた NSTableView があります。ほとんどはテキストを含みますが、1 つには NSButton が含まれます。データ ソース内のオブジェクトの量を減らすと、 と を呼び出す-noteNumberOfRowsChanged-reloadData、テキスト付きの NSCell はすべて消えますが、ボタン付きの NSCell はそのまま残ります。

この最後の NSCell をテーブルから削除するには、さらにどのような作業を行う必要がありますか?

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

objective-c - NSCell に複数の UI 要素を持つ NSTableView (Transmission など)

NSCell複数の UI 要素を含むを作成して に表示するにはどうすればよいNSTableViewですか? NSCells単一の値で実装できますが、複数の値でtableView:objectValueForTableColumn:row:これを行う方法がわかりませんNSCells。現時点では がありNSViewNSCollectionViewすべての要素が にバインドされていNSArrayControllerます。しかし、私はむしろ、NSTableViewまたは類似のものを持っています。

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

objective-c - NSCell が正しく表示されない

NSTableView にカスタム NSCell がありますが、正しく表示されません。テーブル ビューには適切な数のアイテムが含まれていますが、最初のアイテムを除いて空です。最初のものはセルを示していますが、NSTableView のどこかをクリックすると値がランダムに変化します。これは私の細胞と関係があると思われますcopyWithZone:。私のセルには iVar がなく、objectValuedrawWithFrame:inView:を描画するメソッドだけがあります。私はcopyWithZone:戻る[[[MyCell allocWithZone: zone] init] autorelease]

他のものを返す必要がありますか?

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

macos - カスタム NSCell からコア データを更新する

カスタムNSCell(実際にはサブクラス化NSTextFieldCell) があり、これはスタンドアロン エディターとNSTableColumn(を介して Core Data にバインドNSArrayController) の両方で使用されます。ユーザーが値を変更すると、値-[NSCell setObjectValue:]を更新するために呼び出します (これは ですNSNumber)。これは、スタンドアロン エディターで機能します。完了したら、バインドを手動で更新するためです。

そのステップ (バインドされたフィールドの更新) は、セルがセルにある場合に欠落していNSTableViewます - ユーザーの編集中に更新された値が表示されます (マウス トラッキングを使用)。

はのNSTableColumnキーにバインドされています-[NSArrayController arrangedObjects]。私が見逃している「commitEditing」または「updateBinding」への呼び出しのようなものはありますか? NSCellまたはのドキュメントに便利な関数が見つかりませんでしたNSTableView

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

cocoa - Cocoa バインディングとカスタム NSCell プロパティ

サブクラス化された NSCell (チェック ボックス セル) に関して問題があります。チェックマークの横にタイトルとサブタイトルを表示したい (そのため、これらの NSString プロパティを作成しました)。それらの値はバインディングを介して設定されます(IBからは素晴らしいでしょう)が、ここで問題が発生します:

IB では、セルの「値」のみを設定できます。私の場合は、チェックマーク状態の BOOL です。

データを提供している NSArrayController にバインドする必要があるクラスはどれですか? 細胞自体は何にも縛られず、次のようなことをしているようです

どちらも機能しません。バインディングはいつ、どこで行う必要がありますか?

ベスト、ステファン

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

objective-c - NSColorWellをNSTableViewに追加するにはどうすればよいですか?

NSColorWellとしてラップして、NSCell追加できるようにすることはできNSTableViewますか?そうでない場合、問題に対する別の解決策はありますか?

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

objective-c - NSCellのサブクラス化-[selfobjectValue]with drawInteriorWithFrame:inView:奇妙な結果を返します

メインウィンドウにNSTableView、動的に作成されたデータソースを使用するNIBファイルがあります。つまり、必要に応じて辞書の配列が動的に作成されます。したがって、IBのどのコントローラーにも拘束されません。

テーブルビューには、dataCellのセットをサブクラス化した2つの列があります。

<NSTableViewDataSource>ファイルでは、numberOfRowsInTableView:は動的に作成された配列の正しいカウントに設定され、GDBはテーブルが描画されたときにそれを正しくログに記録します。

ここで問題が発生します。架空の理由で、データソースの配列数が1であるとします。

サブクラス化された両方で、テーブルセル内のすべての描画(画像、テキスト、ボタンなど)を処理NSCellするメソッドを上書きしました。for each列には、文字列(列1)と(列2)のオブジェクト参照が含まれますdrawInteriorWithFrame:inView:NSDictionary

データソース内の1つのオブジェクトの例に基づいてdrawInteriorWithFrame:inView:、次のように記述した場合(列2):

GDBで期待される結果(テーブルをクリックしたりスクロールしたりすることなく)は、次の1つのインスタンスである必要があります。

また、テーブルをクリックまたはスクロールすると、テーブルビュー内の各アクションに対して同じ値が返されるはずです。ただし、最初のロードでは、次のようなものが表示されます。

結果が2つある場合は、3つのログ項目を取得し、それ以外の場合は4つを取得します。ほとんどの場合、メソッドは本来より1回多く呼び出されます。

2つ目の問題は、最近発生したばかりですが、上記のオブジェクトIDに気付くと、それらが異なっていることがわかります。データソースに1つのアイテムを追加した[self objectValue]場合、呼び出したときにテーブルが再描画された場合、オブジェクトIDは参照であるため、同じである必要があります。オブジェクトは前のクラスですでに-alloc'dされており、オブジェクト参照を送信しているだけです。

これが理にかなっていることを願っていますが、私は最後の日、どこかで誤って何かを複製していて問題が見つからないかどうかを確認しようと頭を悩ませてきました。さらにコードが必要な場合はお知らせください。私もグーグルを試しましたが、これへの参照しかありません:

http://forum.soft32.com/mac/NSPopUpButtonCell-view-refresh-ftopict46690.html

前もって感謝します。

以下の議論のための追加の出力。

GDBからの出力

** 1つのファイル、1つのNSCellセット、およびサブクラス化** ここでは、要求は同じままです-(つまり、コピーなし)

1つのファイル、2つのNSCellのセットおよびサブクラス化

ここで、リクエストはサブクラスで変更されます-(つまり、コピーなし)