2010-02-02 14 views

उत्तर

11

आप अलग-अलग फ्रेम है कि आप आकार बदलने के लिए चाहते हैं के दस्तावेज़ दृश्य पर -scaleUnitSquareToSize: कॉल करने के लिए, मुख्य फ्रेम की जरूरत है, उदाहरण के लिए जावास्क्रिप्ट आपका सबसे अच्छा मित्र है:

[_webview stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.zoom = \"0.5\""]; 
+1

यह दृश्य की सीमाओं के दाईं ओर 1/1.5 (यानी 2/3) पर दाईं ओर क्लिप की गई सामग्री की ओर जाता है, जैसे @Wanderer पुष्टि के उत्तर पर टिप्पणियों की तरह। दस्तावेज़ को स्केल करना व्यू का सुपरव्यू या तो काम नहीं करता है, क्योंकि तब माउस पॉइंटर सही काम नहीं करता है (जैसा कि अन्य उत्तरों की टिप्पणियों में भी कहा गया है)। इसलिए, यहां तक ​​कि उत्तर में से कोई भी मेरे लिए अब तक काम नहीं करता है (10.10.5 पर) –

+0

यह भी देखें: http://stackoverflow.com/questions/23010634/zooming-in-and-out-in-webview-cocoa –

-2

एक वेब व्यू एक एनएसवी व्यू है, इसलिए एक तरीका to send it a scaleUnitSquareToSize: message होगा।

- (IBAction)takeZoom:(NSSlider *)sender { 
    WebView *aWebView = [[window.contentView subviews] lastObject]; 
    NSView *clipView = [[[[aWebView mainFrame] frameView] documentView] superview]; 
    float scale = pow(4, [sender floatValue])/(clipView.frame.size.width/clipView.bounds.size.width); 
    [clipView scaleUnitSquareToSize:NSMakeSize(scale, scale)]; 
    [clipView setNeedsDisplay:YES]; 
} 
+0

क्योंकि वेबव्यू वास्तव में मैनग का एक जटिल जटिल सेट है एड नेस्टेड विचार, आप वास्तव में ''scaleUnitSquareToSize:' मुख्य 'वेब व्यू' ऑब्जेक्ट पर कॉल नहीं कर सकते हैं। –

5

या आप यह कर सकते:

+0

सेट करना क्लिप दृश्य में स्केल ऐसा करने का सही तरीका प्रतीत होता है। मैं इस कठिन हिट करने के लिए बहुत थक गया हूं, लेकिन रॉब का सुझाव ऊपर पैमाने पर है, लेकिन यह भी स्क्रॉल सामग्री क्षेत्र को बढ़ाता है, इसलिए आपको एक स्केल किए गए पृष्ठ मिलते हैं, लेकिन वेब दृश्य के दाईं ओर टूटे हुए पिक्सल का 'कलाकृतियों का खेल का मैदान' । मैंने उपरोक्त दिनचर्या के 2,4,5 लाइनों को खींच लिया और यह काम करने लगता है। मेरी रिपोर्ट दृश्य को एक संवाद पैनल में वेब दृश्य में स्केल किया गया है। धन्यवाद वंडरर! –

+2

यह मेरे लिए बहुत अच्छा काम करता है! स्वीकृत उत्तर गलत तरीके से बंद हो जाएगा। – Wevah

+0

आप दोनों दस्तावेज़ देखने के पर्यवेक्षण को स्केल करने के लिए पूरी तरह से स्केल कर रहे हैं? मैं दाएं और गलत रिफ्लो पर क्लिपिंग देख रहा हूं। क्या आप उपयोगकर्ता नियंत्रण के तहत ज़ूम इन और आउट बटन के रूप में बस एक बार, या बार-बार स्केल कर रहे हैं? scaleUnitSquareToSize इस परिस्थिति में किसी की अपेक्षा नहीं कर सकता है, मुझे अंततः यह ऐप्पल क्यू एंड ए मिला जो कुछ प्रकाश डाला https://developer.apple.com/library/mac/#qa/qa2004/qa1346.html लेकिन कुछ अभी भी नहीं है ' सही नहीं वहां श्रेणी का उपयोग करके, मैं अनिवार्य रूप से उपयोग कर रहा हूं: clipView = [documentView superview]; clipView.scale = NSMakeSize (पैमाने, पैमाने); clipView.needsDisplay = हाँ; –

2

:

[[[[webView mainFrame] frameView] documentView] scaleUnitSquareToSize:NSMakeSize(1.5, 1.5)]; 
[[[[webView mainFrame] frameView] documentView] setNeedsDisplay:YES];