NSTableView中剪辑视图的永久错位视图警告

时间:2014-09-21 09:12:44

标签: objective-c xcode cocoa

我的应用程序有一个日志窗口,显示NS​​TableView中的行:

Window > View > Bordered Scroll View - Table View > Clip View > Table View

当我向窗口添加自动布局约束时,无论我做什么,我都会获得剪辑视图的错位视图警告:

Misplaced View warning

我尝试更新其框架,更新其约束,并重置为建议的约束,但没有任何东西可以消除警告。该窗口在运行时正确显示和调整大小,甚至看起来无法向剪辑视图本身添加约束。

如果您想在Xcode中查看它,我已将代码推送到github:https://github.com/MagerValp/AutoDMG/tree/e57b0140e3fc3f7f9e0d4550341ed249a6cf5378。该代码需要10.10 SDK进行编译,但xib应该可以在Xcode 5及更高版本中查看。

4 个答案:

答案 0 :(得分:3)

我最近遇到了同样的问题,警告Clip视图预期值比实际值大17px。

我相信这是Xcode的一个错误。我确实找到了解决方法(除了将我的操作系统降级到10.9)。

解决方案是在IB中编辑tableView的属性,禁用" Headers"。不要显示表格标题,警告就会神奇地消失。我们可以猜测默认情况下表头是17px:)

这只是一种解决方法,而不是理想的解决方案。这不是我们的错。最好的解决方案是等待Apple修复此Xcode错误。

答案 1 :(得分:2)

Scrollviews的子视图层次结构只与自动布局兼容。

解决这个问题的一种方法是约束剪辑视图,这样就不会打扰你。 然后在检查器中,标记要在运行时删除的约束。

答案 2 :(得分:1)

  

ScrollCiew

     
    

ClipCiew

         
      

的TableView

    
  

如果错误来自ClipView。 检查ScrollView大小,记住它。 然后单击ScrollView作为目标,打开大小检查器,使用带有ScrollView大小的占位符启用内部大小。

答案 3 :(得分:0)

我使用Xcode的最新版本Xcode 12.3。而且也有同样的警告。通过将TableView 内容模式基于视图更改为基于单元格,我消除了放错视图的警告,然后该警告消失了。然后,我改回基于视图。该警告将不再出现。