NSScrollView в NSViewController

Я делаю свое первое приложение для OSX. У моего appDelegate есть окно с contentView NSViewController. Этот NSViewController имеет настраиваемое представление, которое отображается при запуске. Я добавил NSScrollView как свойство моего NSViewController, а в xib я поместил его в правильное положение и сослался на владельца файлов (NSViewController). ScrollView никогда не отображается, когда отображается представление. Код, включающий scrollView, выглядит следующим образом:

в .h для viewController:

#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
#import "StockData.h"
@interface MasterViewController : NSViewController {

IBOutlet NSScrollView * scrollView1;
}
@property (retain) IBOutlet NSScrollView * scrollView1;
@property (retain) NSView * contents;

@end

в .m для viewController:

#import "MasterViewController.h"
#import <math.h>
#import <Foundation/Foundation.h>

@implementation MasterViewController
@synthesize scrollView1, contents;

- (void) awakeFromNib
{
self.scrollView1 = [[NSScrollView alloc] init];
self.contents = [[NSView alloc] initWithFrame:NSMakeRect(0,0,430,1000)]; 
[self.view addSubview:scrollView1];
[self.scrollView1 setDocumentView:self.contents];
}

@end

Если бы кто-нибудь мог помочь, это было бы здорово! Спасибо!


person Andrew    schedule 18.01.2013    source источник
comment
используйте initWithFrame вместо init для scrollView или используйте автоматическое изменение размера подпредставления.   -  person 9dan    schedule 18.01.2013
comment
Я пробовал оба, и это не работает :(   -  person Andrew    schedule 18.01.2013


Ответы (1)


Насколько я понимаю вашу проблему, вам не нужно выделять/инициировать scrollView1, если он хорошо подключен к файлу xib. Xib выделяет его для вас, поскольку scrollView1 является объектом этого xib. Если вы NSLog(@"%@",[scrollView1 description]) до и после выделения, это должно дать вам два разных объекта. Я бы попробовал :

self.contents = [[NSView alloc] initWithFrame:NSMakeRect(0,0,430,1000)]; 
[self.view addSubview:scrollView1];
[self.scrollView1 setDocumentView:self.contents];

Теперь вы добавляете объект xib scrollView1 в self.view. Надеюсь, поможет!

person Philippe Champigny    schedule 18.01.2013