6

ビューベースのテーブルを使用しており、セル ビュー内の要素のアウトレットを作成したいと考えています。コンセントを接続できません...常にnilです。

具体的にはNSProgressIndicator、表のセルに があり、コードで操作したいと考えています。

これが私がこれまでに持っているものです:

のサブクラスを作成NSTableViewし、対応するアウトレット プロパティを設定しました。

@interface MyTableCellView : NSTableCellView
@property IBOutlet NSProgressIndicator *myProgressIndicator;
@end

@implementation MyTableCellView
-(void)awakeFromNib
{
    // _myProgressIndicator is nil!
}
@end

そして、ペン先にカスタムクラスを設定しました。既存のものはドロップダウン経由NSTableCellViewで置き換えられます。MyTableCellView

この時点で、いくつかの観察:

  • Ctrlプログレス インジケータを+クリック アンド ドラッグしてこのアウトレットに接続すると、表示されません。ここに画像の説明を入力 ここに画像の説明を入力

  • 同様に、Ctrlアシスタント エディターを使用してプログレス インジケーターを +クリックしてドラッグしようとすると、バインディングを介してのみプロパティに接続できます。これは有効なアウトレットとして認識されません。ここに画像の説明を入力

  • ただし、このアウトレットはサイドバーに表示され、存在しないという警告が表示されます。ここに画像の説明を入力

  • 利用されていることが分かりMyTableCellViewます。ブレークポイント オンはawakeFromNibこれを確認し、 であることを確認し_myProgressIndicatorますnil

これはサンドボックス プロジェクトであり、私が説明した以上のものはほとんどありません。

SO、コードからこの進行状況インジケーターにアクセスするにはどうすればよいですか?

4

2 に答える 2

2

そのようにするべきではないと思います。代わりは:

  1. テーブル ビューのデータ ソースで使用されるモデル オブジェクトを変更して、テーブル ビューを設定します。
  2. テーブル ビューreloadData(またはそれ以上reloadDataForRowIndexes:columnIndexes:) を呼び出します。

したがって、これを行うには、テーブル ビューへのアウトレットのみが必要であり、テーブル ビューのセル オブジェクトの変更は、テーブル ビュー デリゲートおよび/またはデータ ソース メソッド内で行う必要があります。

于 2014-01-15T11:47:03.493 に答える