[résolu]Scroller une webview plein écran
elaum
Membre
Bonjour.
Je suis en train d'essayer de faire un navigateur simpliste qui s'affiche en plein écran.
J'ai récupéré le plein écran du sujet [TRUKéASTUCE] Faire de l'affichage plein écran en cocoa.
J'ai donc une webView crée dynamiquement comme ceci :
Mon problème vien que je n'arrive pas à scroller.
En effet, la petite barre (ascenseur?) est grisé et je ne peu pas scroller avec la mollette. En revanche je peu cliquer sur l'ascenseur pour le déplacer.
J'ai regardé sur ce site et ailleur et j'ai trouvé quelques pistes mais sans aboutir :
? la commande [tt][[[webView mainFrame] frameView] setAllowsScrolling:YES];[/tt] semble nécessaire mais pas suffisante.
? J'ai aussi l'impression qu'il faut un delegate pour gérer le scroll.
En fait je me demande carrément si on peu scroller en plein écran?
:why?:
Je suis en train d'essayer de faire un navigateur simpliste qui s'affiche en plein écran.
J'ai récupéré le plein écran du sujet [TRUKéASTUCE] Faire de l'affichage plein écran en cocoa.
J'ai donc une webView crée dynamiquement comme ceci :
webView = [[WebView alloc] init];
Mon problème vien que je n'arrive pas à scroller.
En effet, la petite barre (ascenseur?) est grisé et je ne peu pas scroller avec la mollette. En revanche je peu cliquer sur l'ascenseur pour le déplacer.
J'ai regardé sur ce site et ailleur et j'ai trouvé quelques pistes mais sans aboutir :
? la commande [tt][[[webView mainFrame] frameView] setAllowsScrolling:YES];[/tt] semble nécessaire mais pas suffisante.
? J'ai aussi l'impression qu'il faut un delegate pour gérer le scroll.
En fait je me demande carrément si on peu scroller en plein écran?
:why?:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je viens de me rendre compte que ce n'est pas que le scroll qui est "désactivé"
mais les champs de textes aussi.
Il m'est impossible d'éditer ces champs de textes. :why?:
Au cas où, le code pour le plein écran :
Sinon, par défaut une WebView n'est pas éditable, il faut donc changer le flag avec la méthode setEditable:.
[tt]
mainScreenBounds = [[NSScreen mainScreen] frame];
webView = [[WebView alloc] initWithFrame:mainScreenBounds frameName:nil goupName:nil];
[[[webView mainFrame] frameView] setAllowsScrolling:YES];
[webView setEditable:YES];
[webView setFrameLoadDelegate:self];
[webView setResourceLoadDelegate:self];
fullScreenWindow = NSWindow alloc] initWithContentRect:mainScreenBounds <br /> styleMask:NSBorderlessWindowMask<br /> backing:NSBackingStoreBuffered<br /> defer:YES<br /> screen:[NSScreen mainScreen;
webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:defaultURL];
[fullScreenWindow setLevel:NSScreenSaverWindowLevel];
[fullScreenWindow setContentView:webView];
[fullScreenWindow orderFrontRegardless];
[/tt]
Ca ne change rien mais il me semble que ce serait plus approprié (initWithFrame) merci.
mpergand > Ne marche pas non plus
J'ai copié collé le code dans ma classe (celle dans laquelle il y a ma webView)
fouf > Pas encore testé.
Je vous remercie pour vos réponses et je vais chercher encore un peu.
Si vous avez d'autre idées
Pour que ca marche, je croit qu'il faut que tu sous-classes NSWindow et que tu rajoutes cette méthode.
canBecomeKeyWindow est une méthode de NSWindow, donc ...
donc il faut que je sous-classe NSWindow? (à tout hasard vue la réponce précédente )
Si j'ai bien compris c'est que ma classe principale (celle qui contient la fenetre) que je fait descendre de NSWindow au lieu de NSObject?
Ou alors je crée une autre classe a qui je rajoute cette fonction. (je l'appelle comment alors??)
Dans IB il faut que tu crées cette sous-classe, tu l'appelles comme tu veux, puis dans l'inspecteur de ta fenêtre, onglet "Custom Class", tu choisis la sous-classe créée. Ensuite dans le menu "Classes", tu crées les fichiers de ta sous-classe, puis dans XCode tu n'auras plus qu'à implémenter la méthode canBecomeKeyWindow dans les fichiers nouvellements créés.
[EDIT] Il va sûrement falloir changer ta façon de faire pour initialiser ta fenêtre, en surchargeant aussi initWithContentRect... et en faisant dans IB un outlet relié de ton controleur à ta fenêtre.
Maintenant, je vais tenter de rendre mon code plus "propre"
Et si les exams de janvier se passent bien(:() je mettrait mon appli sur mon site. (source comprise)
[EDIT][MAJ] : Je les ai mis sur mon site (juste en téléchargement)
ici
sinon je n'arrive pas a le remettre en fenetre plus petite et ensuite eventuellement le repasser en fullscreen
j'ai fait :
[fullScreenWindow orderOut:self] mais la fenetre disparait
( fullScreenWindow est une instance de la classe NSWindow )
donc j'aimerai aussi savoir comment je peut dans mon menu cocher l'item Plein ecran et s'il est coché ou non le passer ou l'enlever de plein ecran.
Merci pour vos reponses ++