6
votes

Les barres de défilement de Cocoa WebView ne disparaîtront pas

Je charge le webview and Set permet de ne pas connecter, mais webview affiche toujours des barres de défilement ... cogner votre tête sur votre ordinateur fait plus mal maintenant que les macbooks ont des bords métalliques tranchants.

My Code: P>

2010-08-24 15:20:09.102 myApp[30437:a0f] Scrolling Allowed
2010-08-24 15:20:09.104 myApp[30437:a0f] Scrolling Not Allowed


0 commentaires

4 Réponses :


0
votes

essayez-vous d'empêcher l'utilisateur de faire défiler la vue du tout? Vous pouvez simplement définir productweb.usererInterActionEf = No code>. Ou essayez-vous simplement d'empêcher les barres de montrer que lorsque l'utilisateur défile?

Voici une autre chose que vous pouvez essayer: Injectez quelques javascript dans votre UIWebView qui désactive l'événement TouchMove: P>

[productWeb stringByEvaluatingJavaScriptFromString:@"document.ontouchmove = function(e){e.preventDefault();}"];


2 commentaires

Je pense que c'est OS X, cependant, pas iOS ...


Oui, il semble que le framework iPhone ait attiré beaucoup plus d'attention ces derniers temps. Il y a beaucoup de fonctionnalités que j'aimerais voir apportées au cacao de base.



1
votes

J'ai trouvé que je devais modifier le code HTML de la page J'essayais d'afficher pour vous assurer qu'il était configuré pour prendre plein écran (et non plus) ... Il y avait une DIV qui avait une largeur minimale. Une fois que je me suis assuré que le corps avait une hauteur = 100% et que rien de la DIV n'a eu une largeur de largeur fixe ou minimale qui était plus petite que la boîte que je voulais le montrer dans tout ce qui est venu ensemble :)


0 commentaires

-1
votes

Je suppose que votre vue Web est dans une pointe qui est chargée avant -ApplicationDidFinishlaunching: est appelé.

une solution rapide:

  1. Dans votre NIB, sélectionnez la fenêtre et désélectionnez l'attribut "visible au lancement".
  2. Ensuite, après avoir appelé -SealleLowsScrolling: , appelez - [Self.Window MakeKeyandorderfront: nil] Pour afficher la fenêtre.

    Un correctif mieux consiste à déplacer votre fenêtre de chargement de la fenêtre de l'application déléguée à une sous-classe de contrôleur de fenêtre, appelez-le à -SetalloSscrolling: dans - [NswindowController WindowLoad] et appelez - [nswindowcontroller showwindow:] à partir de votre délégué de votre application pour afficher la fenêtre.


1 commentaires

Ce n'est pas le cas, AppliCrossDiddfinishLanching se produit après les charges NIB et son NSLog indique clairement que l'objet existe.



0
votes

Essayez ceci si vous utilisez SWIFT:

import Foundation
import Cocoa
import WebKit


class WebViewRep: WebView {

    //... hidden code

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        //Disable scrolling
        self.mainFrame.frameView.allowsScrolling = false
        //Sets current object as the receiver of delegates
        self.policyDelegate = self
        self.frameLoadDelegate = self
        //Load homepage
        self.loadHomePage()
    }

    //... hidden code

    override func webView(sender: WebView!, didFinishLoadForFrame frame: WebFrame!) {
        //Completely disable scroll
        frame.frameView.allowsScrolling = false
        self.stringByEvaluatingJavaScriptFromString("document.documentElement.style.overflow = 'hidden';")
    }

}


0 commentaires