Я новичок в объективе-c, поэтому, пожалуйста, потерпите меня. У меня есть класс, который возвращает изображение с веб-камеры, и я пытаюсь отобразить его на экране. Я вложил в подкласс NSViewController
, чтобы получить изображение из класса камеры, установить для него экземпляр NSImageView
и установить для вида NSViewController
значение NSImageView
. Я создал настраиваемое представление в Интерфейсном Разработчике, перетащил объект NSViewController в MainMenu.xib, установив его класс PhotoGrabberController, и перетащил элемент управления из настраиваемого представления в PhotoGrabberController, чтобы установить привязку к его выходу. (Я действительно не знаю, как это работает за кулисами, мне кажется это волшебством). На экране ничего не появляется, и я играл с этим вечно.
В PhotoGrabberController.h
@interface PhotoGrabberController : NSViewController {
PhotoGrabber * grabber;
NSImageView* iView;
}
@property (nonatomic, retain) NSImageView* iView;
В PhotoGrabberController.m
@implementation PhotoGrabberController
@synthesize iView,grabber;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
- (void) awakeFromNib
{
self = [super init];
if (self) {
NSRect rect = NSMakeRect(10, 10, 200, 100);
iView = [[NSImageView alloc] initWithFrame:rect];
[iView setImageScaling:NSScaleToFit];
[iView setImage:[NSImage imageNamed:@"picture.png"]];
grabber = [[PhotoGrabber alloc] init];
grabber.delegate = (id)self;
//[grabber grabPhoto]; (This usually sets iView but I removed it and manually set iView to be an image from file above for simplicity)
[self setView:iView];
}
}
Я играл с кучей разных вещей в applicationDidFinishLaunching
AppDelegate, но то, как он настроен прямо сейчас, я думаю, мне не нужно ничего вставлять туда.
Вопрос
- Как мне заставить главное окно показывать изображение?
- Можно ли использовать PhotoGrabberController.view вместо создания подкласса представления?
- Что не так с моим пониманием того, как все здесь работает? Я потратил много времени, пытаясь понять это, и никуда не попал.
- Можете ли вы направить меня на ресурс, где я могу полностью понять, как это работает? Я нашел документацию Apple слишком подробной и толстой. Я просто хочу понять, как окна, представления и контроллеры представления загружаются и взаимодействуют.