問題タブ [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 投票する
2 に答える
3112 参照

objective-c - サブビューを使用してカスタムセルで NSTableView をセットアップする方法

ArrayControllerBindingsを使用して、カスタム セルでNSTableViewをセットアップしようとしています。これを実現するために、カスタム セルにサブビューを追加しました。データ接続は何とか機能しているようです。ただし、修正できない再描画の問題があるようです。アプリケーションをロードすると、一部のセルのみがレンダリングされます。行をスクロールするか、行を選択すると、レンダリングが変わります。

問題が何であるかを説明するために、github でサンプル プロジェクトを作成しました。

スクリーンショット

セル レンダリングの実際のソース コードは、次の場所にあります

controlViewが再描画しないようです。どうにか強制できませんか?

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

objective-c - NSCellのNSView

私はこれについてたくさん読んだのですが、それを動作させることができません、私はこのコードでカスタムNSCellを持っています

そしてこれは私のNSTableViewデータソースです:

私が理解しているように、drawwithframe ...はセルが初期化されたときに呼び出されますが、呼び出されることはありません。

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

objective-c - 複数行のNSTextFieldCell

NSTextFieldCellを、各行に異なる形式の複数の行で表示する必要があります。

このようなもの:

1行目:タイトル
2行目:説明

NSTextFieldCellをサブクラス化しましたが、それを続行する方法がわかりません。

何か案は?

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

cocoa - NSSliderCell と NSButtonCell は値を変更しません

値が NSArrayController の値にバインドされている NSTableColumn を持つ NSTableView があります。デリゲートを使用して、どの行にどのセル型があるかを指定しています。.nib ファイルで、列のセルが NSTextFieldCell の場合、NSSliderCell および NSButtonCell チェックボックスの値は変更されません (チェック ボックスをクリックしてスライダーを動かすことはできますが、マウスを離すと値が元に戻ります)。 )。(nib ファイルの) セル タイプを NSActionCell に変更すると、NSButtonCell と NSSliderCell は正しく機能しますが、NSTextFieldCell を編集できません。私が使用するとき- [NSTableView editColumn:row:withEvent:select:]セルを強制的に編集するには、NSSliderCell や NSButtonCell と同様に、値を送信すると元の値に戻ります。NSTableColumn をサブクラス化し、dataCellForRow: メソッドをオーバーライドしようとしましたが、同じ結果が得られました。NSTableColumn のすべてのバインドを切断すると、同じ結果が発生します (もちろん、セルはすべて空白です)。

これを解決する方法について何かアイデアはありますか?

ありがとう。

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

objective-c - NSCellのNSAttributedString

NSAttributedStringを使用してフォーマットしたデータをNSOutlineViewに入力しています。これまで、テキストのフォント、サイズ、色をフォーマットしました。私の問題は、行を選択しても前景色が変わらないことです。NSTextFieldCellを作成し、Interface Builderで色をdisabledControlTextColorに設定すると、正常に機能します。選択されていない場合は灰色で表示され、白で選択されている場合は、プログラムでこの色を属性付き文字列定義に設定すると、常に次のように表示されます。グレー。

前もって感謝します。

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

objective-c - 部門のあるNSCell

次のサンプルのようにNSCellを描画する方法があるかどうか知りたいです。アイデアは、同じ列、3行に収まるようにすることです。最初の行はタイトルに十分なスペースがあり、残りは2列です。

TITLE_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _ _1 _ _ _
_
_ DATA_TITLE_4:DATA_VALUE_2

ノート:

  • 「___」は3つのスペースであると想定されていました(それらを表現する方法がわかりません)。
  • 列のタイトルと値の長さは異なることに注意してください。

前もって感謝します。

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

objective-c - NSCellのアニメーション

NSOutlineView でいくつかのセルをアニメーション化しようとしています。左パネルのデバイスの横にある iTunes 同期アイコンとして回転するようにアイコンをアニメーション化する必要があります。

私はアニメーションの分野であまり経験がありません。インターネット全体を調べて、この簡単な解決策を見つけました。

このソリューションで私が抱えている問題は、NSCell の異なるサブクラスのいずれにも、使用できる CALayer がないことです。そこでまず、CALayer を含む NSImageView を追加して NSCell をサブクラス化することにしました。アニメーションは機能しましたが、エクスペリエンスはひどいものでした。画像ビューは信じられないほど非効率的で、ほとんどスクロールできず、アニメーションは行の 1 つでしか機能しませんでした。

私が今やろうとしているのは、サブクラス NSButtonCell (セルにアクションを設定する必要があります。そうしないと NSImageCell になります)、drawWithFrame メソッドをオーバーライドし、受信した NSView (controlView) に subLayer を追加して、それをアニメーション化します。

現在の問題は、アニメーションが機能しないことです。

コードを残します。

PLZヘルプ!

前もって感謝します。

みきわん。

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

cocoa - 編集モードで NSTextField の代わりにカスタム ビューを表示する NSTextFieldCell を作成する方法は?

NSTextFieldCell を含む 3 つの列を持つ tableView があります。すべてにバインディングが設定されています。

いずれかの列のセルのテキストは計算され、直接編集することはできません。この列では、セルが編集モードになったときに、 textField の代わりにボタンまたはカスタム ビューを表示したいと考えています。
別の言い方をすれば、編集されていないときはNSTextFieldCellであるNSCellが必要であり、編集されているときはNSButtonCell (またはカスタム ビュー) が必要です。

これに進むためのヒントはありますか?


これが私が試したものですが、成功しませんでした:

  • #1を試してください:

NSTextFieldCell以下に示すように aとオーバーライドをサブクラス化しましたfieldEditorForView:=> 問題は、返される NSButton が応答しないことsetDelegate:と、おそらく他の多くのものです。

  • #2を試してください:

サブクラスNSTextFieldCellとオーバーライドdrawWithFrame: inView:=> このメソッドは、編集モードでないときにセルを描画するためにのみ使用されます。

  • #3を試してください:

この手がかりにはいくらかの可能性がありますが、明らかに何かが欠けています。
ウィンドウのデリゲートに実装windowWillReturnFieldEditor: toObject:し、カスタム フィールド エディターを返します。私は正しい軌道に乗っているように見えますが、何かを見逃していました。引数 anObject は決して私のカスタム セルではありません (再確認したところ、XIB で適切に定義されています)。

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

objective-c - NSOutlineView からセルの内容を取得する

NSOutlineView で発生する奇妙な問題があります。ビューは基本的に、子として関連付けられたファイルを持つアプリのリストです。ビューをデータソースに手動で入力すると、すべて正常に機能します。私が今やりたいことは、アイテムを削除するためのボタンを用意することです。それを行うために、removeAppOrFile メソッドを次のように実装しました。

myView は、NSOutlineView に接続された IBOutlet です。別の行を選択してボタンをクリックすると、selectedRow の値は適切に変更されますが、NSCell オブジェクトは決して変更されず、その値 (つまり、NSString アイテム) は常に最後の表示アイテムの値を示します (つまり、最後のアイテム NSString アイテムとして子を持つアイテムは、展開されていない場合は親になり、展開されている場合は最後の子になります)。

奇妙なことは、NSOutlineView の doubleAction に基本的に同じコードを他の場所で使用していて、完全に機能することです。その場合、コードは次のようになります。

この場合、送信者は OutlineView です。行番号の変更に伴うアイテムとセルの変更。

最初の例でなぜ機能しないのかについて何か考えはありますか?