0

だから私は次のように設定された NSViewController (MyVC) を持っています:

//MyVC.h
...
@property (nonatomic, retain) IBOutlet NSTextField *input;
...

//MyVC.m
...
@synthesize input;

- (id)init
{
    self = [super initWithNibName: @"MyVC" bundle: [NSBundle mainBundle]];
    NSLog(@"%@", input); //prints (null) always
    return self;
}

- (void)loadView
{
    [super loadView];
    NSLog(@"%@", input); //still (null)
}
...

//MyVC.xib

Custom View       [Referencing Outlet:    File's Owner.view]
    Text Field    [Referencing Outlet:    File's Owner.input]

これで、この NSViewController を ( 経由でMyVC *vc = [[MyVC alloc] init];) ロードしてウィンドウにロードすると、テキスト フィールドが適切に表示されます。ただし、上記の貼り付け (およびいくつかの BAD_ACCESS) が示唆するようvc.inputに、テキスト フィールドを正しく指していません。

ノート:

  • このプロジェクトは ARC を実行しています。
  • これは単純化や一般化ではありません。私はこの正確なコードを無駄に実行しました。
  • すべての IBOutlets は間違いなく適切に設定されています。
4

1 に答える 1

1

エラーは、物事の組み合わせでした。

私のリビジョンの 1 つに IBOutlet タグがなく、実行時に ViewController への参照を保持しているものはありませんでした。

于 2011-09-08T18:00:39.080 に答える