質問

私は2つの列を備えたnSarrayControllerにバインドされたnStableViewを持っています。 1つの列は、配列コントローラーの配置されたオブジェクトにバインドされ、文字列を表示します。

他の列に画像を表示したいのですが、機能させることはできません。 nsimagecellを列にドラッグし、画像を手で設定しましたが、実行時には表示されません。再確認しましたが、画像はリソースディレクトリにあります。

私は何かが足りませんか?その画像を表示するには、他に何をすべきですか?

役に立ちましたか?

解決

それで、あなたは各行に同じ画像を表示したいですか?それがあなたがそれを「手で」設定しているのですか?そのためには、nstableviewdatasourceメソッドとバインディングを組み合わせることができます。アイデアは、あなたの文字列列がいつものようにバインドされるということですが、あなたの画像列はバインドされていません。識別子セット(「ImageColumn」など)があります。次に、numberofrowsintableview:and tableView:objectValueFortableColumn:row:Array Controllerのオブジェクトカウント(適切な数の行があります)を提供し、適切な列の値を要求するときは常に静的画像を返すだけです(IDを確認するだけで、常に静的画像を返します「ImageColumn」)、それ以外の場合はnilを返します。

画像が静的でない場合(つまり、何らかの種類のインジケーターとして使用する必要があります)、上記の方法(いくつかの画像ベースの値を返す)またはバインディングを使用できます。バインディングを使用するには、「ステータス」(数)など、アレイコントローラーが保持しているクラスにプロパティを追加できます。次に、ステータス番号を対応する画像に変換するカスタムnsvalueTransformerを使用します。列は、バリュートランスを使用して、アレイコントローラーのArrangeDobjects.Statusにバインドされます(使用するための指示についてはnsvalueTransformerを参照してください - 登録する必要があります)。その結果、特定のステータスに対応する画像が列になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top