0
CocoaHeads.fr
NSWindow
1988 -
Stéphane Sudre
Employé du mois chez Lapeyre
Sommaire


• Profil d’une fenêtre
• Les bases
• Performance
• Utilisations avancées
Profil d’une fenêtre

                       Titre
      Boutons                   Barre de titre




                     ...
Profil d’une fenêtre




       NSWindow       NSPanel
Profil d’une fenêtre




        Key      La fenêtre qui répond aux entrées clavier



       Main      La fenêtre standard...
Les bases
Créer une fenêtre




                - initWithContentRect:
                            styleMask:
            ...
Les bases
Afficher/masquer une fenêtre

                - makeKeyAndOrderFront:

                - orderFront:

           ...
Les bases
Redimensionner une fenêtre


                 - setFrame:display:animate:

                 - setFrame:display:
...
Les bases
Contraindre le redimensionnement manuel




               - setMinSize:

               - setMaxSize:

        ...
Les bases
Autoriser/interdire le redimensionnement manuel




                - setShowsResizeIndicator:

                ...
Les bases
Déplacer une fenêtre avec du code


                - setFrameOrigin:

                - setFrameTopLeftPoint:

...
Les bases
Placer une fenêtre dans le Dock


                  - miniaturize:

                  - deminiaturize:




     ...
Copyright 2010 Ed Whetstone
Démon!ration
Une fenêtre p"r les g"verner t"tes
- addChildWindow:ordered:
- removeChildWindow:
- parentWindow
NeXTStep forever
- (id) initWithContentRect:(NSRect) inFrame
                 styleMask:(NSUInteger) inStyle
                   backing:(NS...
- (id) initWithContentRect:(NSRect) inFrame
                 styleMask:(NSUInteger) inStyle
                   backing:(NS...
- (id) initWithContentRect:(NSRect) inFrame
                 styleMask:(NSUInteger) inStyle
                   backing:(NS...
- (id) initWithContentRect:(NSRect) inFrame
                 styleMask:(NSUInteger) inStyle
                   backing:(NS...
M
              I
D



    Forever
1   HIThemeDrawWindowFrame(...);




2


                                   rdar://8090925
Démon!ration
Ressources

Documentation
  developer.apple.com/mac/library/documentation/Cocoa/Conceptual/WinPanel/WinPanel.html




Samp...
CocoaHeads.fr
Slides de la
Slides de la
Slides de la
Slides de la
Slides de la
Upcoming SlideShare
Loading in...5
×

Slides de la

547

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
547
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Slides de la "

  1. 1. CocoaHeads.fr
  2. 2. NSWindow 1988 -
  3. 3. Stéphane Sudre Employé du mois chez Lapeyre
  4. 4. Sommaire • Profil d’une fenêtre • Les bases • Performance • Utilisations avancées
  5. 5. Profil d’une fenêtre Titre Boutons Barre de titre Zone de Ombre Contenu redimensionnement
  6. 6. Profil d’une fenêtre NSWindow NSPanel
  7. 7. Profil d’une fenêtre Key La fenêtre qui répond aux entrées clavier Main La fenêtre standard qui est au premier plan Activate L’application est l’application active
  8. 8. Les bases Créer une fenêtre - initWithContentRect: styleMask: backing: defer:
  9. 9. Les bases Afficher/masquer une fenêtre - makeKeyAndOrderFront: - orderFront: - orderWindow:relativeTo: - setAlpha: - orderOut: - setHidesOnDeactivate: - setLevel: kCGDesktopWindowLevel-1 ! Masquer n’est pas fermer ! - close / - setReleasedWhenClose:
  10. 10. Les bases Redimensionner une fenêtre - setFrame:display:animate: - setFrame:display: - setContentSize: ! Indépendance de la résolution ! + frameRectForContentRect:styleMask:
  11. 11. Les bases Contraindre le redimensionnement manuel - setMinSize: - setMaxSize: - setAspectRatio: - setResizeIncrements:
  12. 12. Les bases Autoriser/interdire le redimensionnement manuel - setShowsResizeIndicator: - setMinSize: - setMaxSize: ! Il est peut-être déjà trop tard !
  13. 13. Les bases Déplacer une fenêtre avec du code - setFrameOrigin: - setFrameTopLeftPoint: - setFrame:display:animate: Autoriser le déplacement par le fond - setMovableByBackground:
  14. 14. Les bases Placer une fenêtre dans le Dock - miniaturize: - deminiaturize: ! Attention à la fermeture de fenêtres dans le Dock
  15. 15. Copyright 2010 Ed Whetstone
  16. 16. Démon!ration
  17. 17. Une fenêtre p"r les g"verner t"tes
  18. 18. - addChildWindow:ordered: - removeChildWindow: - parentWindow
  19. 19. NeXTStep forever
  20. 20. - (id) initWithContentRect:(NSRect) inFrame styleMask:(NSUInteger) inStyle backing:(NSBackingStoreType) inType defer:(BOOL) aFlag { self=[super initWithContentRect:inFrame styleMask:NSBorderlessWindowMask backing:inType defer:aFlag]; if (self!=nil) { [self setOpaque:NO]; [self setBackgroundColor: [NSColor clearColor]]; } return self; }
  21. 21. - (id) initWithContentRect:(NSRect) inFrame styleMask:(NSUInteger) inStyle backing:(NSBackingStoreType) inType defer:(BOOL) aFlag { self=[super initWithContentRect:inFrame styleMask:NSBorderlessWindowMask backing:inType defer:aFlag]; if (self!=nil) { [self setOpaque:NO]; [self setBackgroundColor: [NSColor clearColor]]; } return self; }
  22. 22. - (id) initWithContentRect:(NSRect) inFrame styleMask:(NSUInteger) inStyle backing:(NSBackingStoreType) inType defer:(BOOL) aFlag { self=[super initWithContentRect:inFrame styleMask:NSBorderlessWindowMask backing:inType defer:aFlag]; if (self!=nil) { [self setOpaque:NO]; [self setBackgroundColor: [NSColor clearColor]]; } return self; }
  23. 23. - (id) initWithContentRect:(NSRect) inFrame styleMask:(NSUInteger) inStyle backing:(NSBackingStoreType) inType defer:(BOOL) aFlag { self=[super initWithContentRect:inFrame styleMask:NSBorderlessWindowMask backing:inType defer:aFlag]; if (self!=nil) { [self setOpaque:NO]; [self setBackgroundColor: [NSColor clearColor]]; } return self; }
  24. 24. M I D Forever
  25. 25. 1 HIThemeDrawWindowFrame(...); 2 rdar://8090925
  26. 26. Démon!ration
  27. 27. Ressources Documentation developer.apple.com/mac/library/documentation/Cocoa/Conceptual/WinPanel/WinPanel.html Sample Code developer.apple.com/mac/library/samplecode/RoundTransparentWindow/ developer.apple.com/mac/library/samplecode/FunkyOverlayWindow/FunkyOverlayWindow.zip
  28. 28. CocoaHeads.fr
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×