Я выполняю упражнения по вызову в книге Аарона Хиллегаса «Программирование какао для Mac».То, что я пытаюсь сделать, это изменить размер окна до двойной ширины.Вот мой код.
#import "AppController.h"
@implementation AppController
-(id) init
{
[super init];
NSLog(@"init");
[window setDelegate:self];
return self;
}
-(NSSize) windowWillResize:(NSWindow*) sender
toSize:(NSSize)frameSize
{
int x;
NSSize mySize;
mySize.width = x;
mySize.height = 2*x;
NSLog(@"mySize is %f wide and %f tall",mySize.width,mySize.height);
return mySize;
}
Это не работает, как задумано. Я уверен, что я неправильно использую тип NSSize.Я не знаю много C, поэтому, используя структуру, я думаю, что делаю свою ошибку.
ADDENDUM: Я изменил приведенный выше код на следующий. Я знаю, что мне передаютNSSize, поэтому нет причин создавать другой (например, mySize). Однако я не понимаю, почему это работает.Может кто-нибудь объяснить.
#import "AppController.h"
@implementation AppController
-(id) init
{
[super init];
NSLog(@"init");
[window setDelegate:self];
return self;
}
-(NSSize) windowWillResize:(NSWindow*) sender
toSize:(NSSize)frameSize
{
//float x = 100;
//NSSize mySize;
//mySize.width = x;
//mySize.height = x * 2;
//NSLog(@"mySize is %f wide and %f tall",mySize.width,mySize.height);
NSLog(@"mySize is %f wide and %f tall",frameSize.width,frameSize.height);
return NSMakeSize(frameSize.width, frameSize.width * 2);
}
@end