Я занимаюсь выполнением упражнений в книге Аарона Хиллегасса «Программирование какао для Mac». То, что я пытаюсь сделать, - это изменить размер окна в два раза выше высоты ширины. Вот мой код до сих пор.У меня проблема с использованием NSSize
#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
Я сделал это, но происходит то, что при изменении размера окна он просто привязывается к одному размеру и не позволяет изменять размер; это не динамическое изменение размера. – lampShade
Кроме того, у меня есть разрешение на изменение размера в интерфейсе Builder. – lampShade