2013-11-10 42 views
2

我剛開始學習OSX Cocoa應用程序開發。我想在本地OSX窗口中顯示一個網站。我認爲WebView將是正確的方式。我希望webview始終佔用包含窗口大小的100%。調整WebView實例的大小

在掙扎了一下後,我明白瞭如何捕捉窗口大小調整事件,但我不知道如何根據窗口大小調整網頁視圖的大小。

這是我到目前爲止有:

AppDelegate.h

#import <Cocoa/Cocoa.h> 
#import <WebKit/WebKit.h> 

@interface AppDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate> 

@property (assign) IBOutlet NSWindow *window; 

@property (weak) IBOutlet WebView *websiteWebview; 

@end 

AppDelegate.m

#import "AppDelegate.h" 

@implementation AppDelegate 

- (NSSize) windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize 
{ 
    WebView *view = [self websiteWebview]; 
    [view setFrame:CGRectMake(0, 0, 1000, 1000)]; 
    return frameSize; 
} 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    [[self window] setDelegate:self]; 
    NSURL *url = [[NSURL alloc] initWithString:@"http://conradk.com"]; 
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    [[[self websiteWebview] mainFrame] loadRequest:request]; 
} 

@end 

我心裏呼喚[view setFrame:CGRectMake(0, 0, 1000, 1000)]將調整Web視圖爲好,但似乎不是這樣。

請提供任何提示/提示? WebView是否是正確的方法?謝謝你的幫助!

+0

你的webview沒有調整大小?或者它調整大小錯誤? – nhgrif

+0

它根本沒有調整大小。更確切地說,如果我使窗口水平放大,webview會移到窗口的左下角(但寬度和高度保持不變)。對於任何其他類型的調整,沒有任何反應。在所有情況下,webview的大小保持不變。 – conradkdotcom

回答

6

您需要使您的WebView窗口的部分contentView

[self.window setContentView:self.websiteWebview]; 

默認情況下,這會讓webView自動調整窗口大小。如果您希望webview執行與窗口大小不匹配的操作,您只需要調整大小。

+0

這似乎不適合我。你試過了嗎?感謝您的努力! – conradkdotcom

+0

您是否刪除了(註釋掉)'windowWillResize'中的內容?我沒有嘗試過,我沒有在這裏訪問Mac。我並不完全熟悉OSX開發,只是iOS,但有很多重疊...... – nhgrif

+0

是的,我做到了。但是你的回答很有幫助,因爲它幫助我瞭解了一些東西,所以我查看了源代碼!這裏有一個可行的解決方案:'[[self window] setContentView:[self websiteWebview]];' – conradkdotcom