【问题标题】:WebView - Failed to set (contentViewController) user defined inspected property on (NSWindow)WebView - 无法在(NSWindow)上设置(contentViewController)用户定义的检查属性
【发布时间】:2015-04-25 18:50:31
【问题描述】:

我从头开始创建了一个新的 Xcode 项目,它编译得很好。

我向视图控制器添加了一个标签,这可以编译/运行/显示正常。

然后我将 WebView 拖入 View Controller,但在运行应用程序时收到此消息:

Failed to set (contentViewController) user defined inspected property on (NSWindow): *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (WebView)

我做错了什么?

【问题讨论】:

    标签: xcode macos webview


    【解决方案1】:

    一般只链接 Webkit.framework->链接的框架和库

    【讨论】:

      【解决方案2】:

      首先,您需要定义 Web 视图,以便它实际上知道要做什么它现在正在做的就是试图找到要在此处运行的内容,请参阅 youtube 上的教程或类似的,这是我使用的代码我的,只是为了设置它。 首先,您要将 Web 视图放入视图控制器并在其底部添加一个工具栏。 在栏上添加四个栏按钮项目。 并在两者之间放置一个固定的空间。

      然后您需要设置它们的样式,方法是转到属性检查器>按钮类型>选择样式 为按钮选择以下第一个是后退第二个是前进第三个是刷新最后一个是取消。

      然后控制单击并将按钮拖动到 Web 视图,它将为您提供加载倒带和刷新等选项。

      然后转到您的情节提要并确保您已连接主文件和头文件,方法是在情节提要文件中选择视图控制器,然后 将类更改为要连接的视图控制器。 然后按回车

      转到您的头文件(.h)并插入以下代码,

      @property (nonatomic, strong) IBOutlet UIWebView *webView;
      

      用括号将其放在@interface 下,但要确保代码不在括号内。

      那么你需要做的是转到你的主文件(.m)并像这样插入以下代码

      @interface WebViewController ()
      
      @end
      
      @implementation WebViewController
      
      
      - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
      
      {
          self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
          if (self) {
              //custom initialization
          }
          return self;
      }
      
      - (void)viewDidLoad {
      
      
      
          NSURL *url = [NSURL URLWithString:@"https://www.google.com"];
          NSURLRequest *requestURL = [NSURLRequest requestWithURL:url]; [_webView     loadRequest:requestURL];
          [super viewDidLoad];
          // Do any additional setup after loading the view.
      }
      

      显然你需要替换 void 或只是过去到正确的地方 然后使用 iOS 模拟器 iPhone 6 构建并运行您的代码。

      希望这有助于度过愉快的一天!

      【讨论】:

      • 根据错误文本判断这是Mac App,而不是iOS(有NSWindow)
      【解决方案3】:

      您应该使用了错误的属性 webFrameWebView 而不是 mainFrame

      if let url = NSBundle.mainBundle().URLForResource("index", withExtension: "html"){
          editorWebView.mainFrame.loadRequest(NSURLRequest(URL: url))
      }
      

      【讨论】:

        【解决方案4】:

        我不认为你做错了什么。它只是一个错误

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-12-25
          • 2020-11-02
          • 1970-01-01
          • 2020-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多