【问题标题】:Xcode 4.5.2 - OS X Application - Link webview to code, load hand-coded homepageXcode 4.5.2 - OS X 应用程序 - 将 webview 链接到代码,加载手动编码的主页
【发布时间】:2013-02-10 02:32:17
【问题描述】:

我使用的是 Xcode 4.5.2。

  • 我创建了一个新项目(OS X > 应用程序 > Cocoa 应用程序)。
  • 在链接的框架和库下,我添加了 Webkit.framework。
  • 在 MainMenu.xib 下,我向 Window 添加了一个 Web View 对象
  • 在 MainMenu.xib 下,我添加了 2 个按钮并将它们命名为 Back 和 Forward。
  • 我控制单击按钮并将它们链接到 Web 视图并选择 goBack: 和 goForward:
  • 在 MainMenu.xib 下我添加了一个 Text Field 对象
  • 我控制单击文本字段并将其链接到 Web 视图并选择 takeStringURLFrom:

所有这些都奏效了。我可以在文本字段中输入网址,然后按回车并使用后退和前进按钮。

我想手动编写一个默认网站 (http://www.google.com/) 来加载,但我不知道从这里做什么?

我将我的网页视图链接到什么(当我控制点击它时)?

我需要在 AppDelgate.h 和 AppDelgate.m 文件中添加什么,以便在应用打开时将 Google 加载到 Web 视图中?

我做了一些研究并走到了这一步。我能够找到一个可行的示例,但我正在尝试逐步了解它是如何工作的,并且一直停留在这一步。

【问题讨论】:

    标签: objective-c xcode macos webview


    【解决方案1】:

    如果您希望您的代理人在应用程序启动后加载 Google 主页,您只需将以下内容添加到您的 applicationDidFinishLaunching::

    NSURL*        url     = [NSURL URLWithString:@"http://google.com"];
    NSURLRequest* request = [NSURLRequest requestWithURL:url];
    [[self.webView mainFrame] loadRequest:request];
    

    这假设您的 AppDelegate.h 中有以下内容:

    @property (weak) IBOutlet WebView *webView;
    

    您通过 CTRL 键将其从 Interface Builder 中的 WebView 控件拖放到您的 AppDelegate.h 中。

    最终代码:

    AppDelegate.h

    #import <Cocoa/Cocoa.h>
    #import <WebKit/WebKit.h>
    
    @interface AppDelegate : NSObject <NSApplicationDelegate>
    
    @property (assign) IBOutlet NSWindow *window;
    @property (weak) IBOutlet WebView *webView;
    
    @end
    

    AppDelegate.m

    #import "AppDelegate.h"
    
    @implementation AppDelegate
    
    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    
      NSURL*        url     = [NSURL URLWithString:@"http://google.com"];
      NSURLRequest* request = [NSURLRequest requestWithURL:url];
      [[self.webView mainFrame] loadRequest:request];
    
    }
    
    @end
    

    【讨论】:

    • 我尝试控制将 Web 视图拖到 AppDelegate.h 文件,但没有成功?
    • 我能够连接 Web 视图,但您的代码不起作用。
    • 与其投反对票并说“它不起作用”,为什么不提供一些有用的反馈来说明究竟什么不起作用?
    • 我在上面复制并粘贴了您的代码。我收到的错误是“@synthesize of 'weak' property is only allowed in ARC or GC mode.
    • 我控制单击了 App Delegate 对象并将其拖到 web 视图对象。我就是这样连接的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多