Resize window, NSImage size

16:25 modifié dans API AppKit #1
Hello à  tous !
Mon problème est simple : je voudrais récupérer la taille d'une image sur le web, j'utilise donc :
NSImage *myImage = [[NSImage alloc] initByReferencingURL:[NSURL URLWithString:@&quot;monserveur.com/image.jpg&quot;];<br />

Après je ne sais pas comment faire pour récup la size de l'image.. j'ai vu sur la doc : - (NSSize *)size / Pour le NSImage.
J'ai donc tenté (vous moquez pas :p) :
NSSize *mySize = NSMakeSize([myImage size]);

hum hum déjà  : erreur... invalid pointer type...

Mon autre problème sera de resizer une fenetre par rapport à  la taille de cette image !
[myWindow setFrame:NSMakeRect(0, 0, mySize) display:YES];

Ben oui forcément c'est faux :p
Merci d'avance :)

Réponses

  • 16:25 modifié #2
    Pas de * pour une NSSize, c'est une bête structure.

    Sinon, autre problème, tu ne tiens pas compte du nombre d'arguments et de leurs types pour une fonction.

    [tt]NSSize NSMakeSize(float height, float width);[/tt], ce qui veut dire que tu dois mettre deux floats. Mettre une NSSize ne peut déjà  pas marcher.

    [tt]NSRect NSMakeRect(float x, float y, float height, float width);[/tt] veut dire que tu dois mettre 4 floats, et pas deux floats et une size. Donc pour que ce soit bon, tu dois mettre [tt]mySize.height[/tt] et [tt]mySize.width[/tt] pour avoir les bons types.

    Et autre remarque, si tu mets le frame de ta fenêtre à  l'origine 0,0, elle se retrouvera en bas à  gauche. Pas sur que c'est ce que tu veux, donc n'oublie pas de sauver la position de la fenêtre.
    NSRect r = [myWindow frame];<br />r.size.width = mySize.width;<br />r.size.height = mySize.height;<br />r.origin.y += [myWindow frame].size.height - mySize.height; // Correction nécessaire car le 0 est en bas<br />[myWindow setFrame:r display:YES];
    
  • 16:25 modifié #3
    Gros merci renaud  ;) (je savais pour l'origine en bas à  gauche = 0, 0 mais c'était juste pour tester ;) merci encore;)
Connectez-vous ou Inscrivez-vous pour répondre.