0

私は、Mac 開発用のココアにはかなり慣れていません。現在、viewController のビューを NSBox の contentView として表示するのに苦労しています。関連するコードは次のようになります。

// AccountsViewController.h. ManagingViewController is a custom subclass of NSViewController
// as of Cocoa Programming for Mac.
@interface AccountsViewController : ManagingViewController
{
    LoginViewController *loginViewController;
}

@property (strong) IBOutlet NSBox *box; 

// Implementation

@implementation AccountsViewController
@synthesize box;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Initialization code here.

        // Should display the view in the contentView(!?!)
        loginViewController = [[LoginViewController alloc]   initWithNibName:@"LoginViewController" bundle:nil];
        box.contentView = loginViewController.view;
    }

    return self;
}

現在、ボックスの contentView には何も表示されません。viewControllers ビューをボックスに入れるにはどうすればよいですか?

4

1 に答える 1

1

問題は、initがビューを追加/変更するには時期尚早であるということです。AccountsViewControllerにawakeFromNibメソッドを実装し、そこにコンテンツビューを設定します。awakeFromNibは、nibがロードされ、すべてを操作する準備ができた後にクラスで呼び出されます。

于 2012-03-24T04:38:26.137 に答える