程序相当于Cocoa中的Live Resize

时间:2014-12-19 22:25:33

标签: objective-c xcode macos cocoa autolayout

我有一个位于视图中的表,位于我的应用程序的侧边栏中 - 在Xcode Identity Inspector 中考虑运行时属性。与构成Xcode中的Inspector面板的面板一样,可以使用位于其上方的 show / hide 按钮切换此表的可见性。问题是,当我试图显示它时,表很少正确呈现(右侧的屏幕截图是一个示例,表示在显示请求之后它的样子 - 该表由接口其他部分的随机位覆盖)。当我调整窗口大小时,问题立即得到解决,所以我一直试图弄清楚这个操作的程序化等价物是什么。我经历过needsDisplayneedsUpdate之类的事情,但无济于事。值得注意的是,此问题似乎特定于表视图,因为我的所有其他面板都正确显示和隐藏。任何人都能提出什么建议吗(值得一提的是,所有视图都受限于使用自动布局)。

enter image description here

关于图片:左边是应该看的桌子。右边是我隐藏它的样子,然后再显示它。在这种状态下,如果手动调整窗口大小,我会将表格恢复到正确绘制的状态。

显示隐藏机制

隐藏表格由两部分组成:属于桌面所在视图的高度约束的constant设置为零,然后,此视图设置为hidden。显示时,相反的情况发生 - 高度约束设置为完整大小hidden设置为false。点击show-hide 按钮(实际上是NSTextField)后发送的通知会触发此过程。

0 个答案:

没有答案