我已經在Google/Stackoverflow中搜索了關於這個的所有內容,但是我仍然陷入了困境。我剛開始開發OSX應用程序,所以我是Objective-C和Xcode 5(5.0.2)中的一個(幾乎)完全新手。如何在Mac WebView上啓用縮放?
我需要的只是一個簡單的webview來從給定的URL加載webgame。這個webview必須表現得像一個非常簡單的Safari瀏覽器。我的應用程序已經運行得相當好。它加載遊戲OK,並經過很多努力,我成功地讓它顯示JavaScript警報和確認。
我的任務是使捏縮放工作。這是我的appDelegate.M:
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize myWebView;
// Enables confirms:
- (BOOL)webView:(WebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
NSInteger result = NSRunInformationalAlertPanel(NSLocalizedString(@"Confirmação", @""), // title
message, // message
NSLocalizedString(@"OK", @""), // default button
NSLocalizedString(@"Cancelar", @""), // alt button
nil);
return NSAlertDefaultReturn == result;
}
// Enables alerts:
- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
NSAlert *alert = [[NSAlert alloc] init];
[alert addButtonWithTitle:@"OK"];
[alert setMessageText:message];
[alert runModal];
//[alert release];
}
// This was supposed to enable pinch zoom:
- (void)magnifyWithEvent:(NSEvent *)event {
//[resultsField setStringValue:
//[NSString stringWithFormat:@"Magnification value is %f", [event magnification]]];
NSSize newSize;
newSize.height = [[NSScreen mainScreen] frame].size.height * ([event magnification] + 1.0);
newSize.width = [[NSScreen mainScreen] frame].size.width * ([event magnification] + 1.0);
//[self setFrameSize:newSize];
[myWebView setFrameSize:newSize];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
[self.window setContentView:self.myWebView];
[self.window toggleFullScreen:@""];
[myWebView setMainFrameURL:@"http://www.mywebgameurl.com"];
}
@end
顯然,裏面- (void)magnifyWithEvent:(NSEvent *)event
代碼是行不通的。該應用程序構建並運行,但是當我捏的時候沒有任何反應。
換句話說,我需要啓用webview來放大和縮小使用觸控板捏功能。我已經在Android中開發了一個非常類似的webview,我只需要添加webSettings.setBuiltInZoomControls(true); webSettings.setSupportZoom(true);
。我只是在尋找類似的東西。歡迎任何幫助,謝謝!