Je fais les exercices de défi dans le livre Cocoa Programming for Mac d'Aaron Hillegass. Ce que j'essaie de faire est d'avoir une fenêtre redimensionner à deux fois la hauteur de la largeur. Voici mon code jusqu'à présent.J'ai un problème pour utiliser 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;
}
Cela ne fonctionne pas comme prévu Je suis sûr que je n'utilise pas correctement le type NSSize. Je ne connais pas beaucoup de C donc l'utilisation de la structure est là où je pense que je fais mon erreur. ADDENDUM: J'ai changé le code ci-dessus pour le suivant. Je sais que je suis passé un NSSize ainsi il n'y a aucune raison d'en créer un autre (c'est-à-dire mySize). Cependant, je ne comprends pas pourquoi cela fonctionne. Quelqu'un peut-il expliquer.
#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
Je l'ai fait, mais ce qui se passe est que lorsque je redimensionne la fenêtre, elle ne prend qu'une taille et ne me permet pas de redimensionner; Ce n'est pas un redimensionnement dynamique. – lampShade
En outre, j'ai activé le redimensionnement activé dans Interface Builder. – lampShade