警告:convertPointToBase已过时。

6
在我的OS X应用中,当我的Web视图加载某些网页时,控制台会显示以下警告,但并非所有网页都会在加载时生成此警告,这对我来说似乎很奇怪,因为Web视图的内容似乎不应影响调用哪些方法。我在代码中没有显式调用此方法。
WARNING: Method convertPointToBase: in class NSView is deprecated on 10.7 and later. It should not be used in new applications. 

所以在某个时刻,NSView的convertPointToBase方法被调用了,但如果我没有在代码中显式地调用它,是什么原因导致它被调用的呢?可能是自动布局在调用这个方法吗?


好问题 - 相当奇怪! - Woodstock
它是从一个库函数中调用的。你正在使用哪些外部库? - jwlaughton
我没有添加任何外部库。从我的代码中调用生成警告的唯一方法是在controlTextDidEndEditing委托方法中,当我在我的URL字段中按回车键时,我有:mainWebview.takeStringURLFrom(urlTextField).....没有其他代码执行,但是当大多数但不是所有网页加载时,我看到这个警告。有一些页面永远不会生成此警告。真的很奇怪。 - Gary Simpson
也许苹果还没有在UIWebView或WebKit中替换已弃用的方法。这种情况下,您唯一能做的就是提交一个错误报告。 - Martin R
1
我希望我看到的警告是WebKit中的一个错误,但是我使用了一个简单的浏览器制作了一个测试应用程序,在那里我没有看到这个错误。话虽如此,仍然可能与我在有问题的应用程序中对WebView进行限制的方式有关,这可能导致WebKit调用不推荐使用的方法。 - Gary Simpson
1个回答

3

我复制了该应用程序并开始将其简化,以确定问题发生的位置。

我追踪问题到我的请求主视图上的一个层次结构,这个层次结构是免费提供的。 我认为这意味着我的 Web 视图存在于一个支持层的视图中。

masterView.wantsLayer = true
masterView.layer?.backgroundColor = CGColorCreateGenericRGB(0.72, 0.73, 0.74, 1)

当我移除这两行代码时,问题不再存在,加载网页时也不会出现此警告。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接