cocoa - SplitView 未正确调整 subview 中 NSTableView 的大小

标签 cocoa nstableview nssplitview

我有一个 10.6 应用程序,正在使用 Xcode 4.3 在 Lion 上构建

主视图中有一个水平分割 View ,包含以下内容:

顶部 View 包含一个 NSSearchField,其下方有一个 NSTableView。

底部 View 包含一个 WebView。

我可以正常工作,但是当我调整分割 View 的大小时,顶 View 的行为很奇怪。

我想要发生的是让搜索字段保持在原来的位置,表格 View 保持在原来的位置,但如果向下拖动 Split View则展开。如果向上拖动,我希望 webview 覆盖搜索字段和表格 View 。

您可以在这段视频中明白我的意思:http://dl.dropbox.com/u/160638/Work/TENSOFT/resizemostlyokay.mov

当我向上拖动时,这会将内容保持在正确的位置,但当我向下拖动时,不会展开表格。 View 已展开,但表未展开。

因此,我更改了 TableView / ScrollView 的自动调整大小约束,使其在调整 View 大小时展开。发生的情况如下:http://dl.dropbox.com/u/160638/Work/TENSOFT/resizeproblem.mov

当分割栏向上移动时,表格 View 在顶 View 内向上移动,直到覆盖搜索字段。当栏向下移动时,它不会向后移动。

我找不到通过更改自动调整大小约束来实现此目的的方法。这通常是非常简单的事情,所以要么我遗漏了一些明显的东西,要么......?

有人在使用 Xcode 4.3 在 Lion 上创建 SL 应用程序时见过这种行为吗?

仅供引用,如果我使用自动布局在新的 10.7 项目中复制此内容,一切都会正常。

问候

达伦。

最佳答案

当您允许 NSSplitView 使其 subview 之一变得非常小,以便 subview 有效重叠时,您会遇到布局问题,这就是 Apple 引入自动布局的原因之一(观看有关自动布局的 WWDC 视频,我我认为他们在开始时就演示了这个问题)。

如果我是你,我会为顶部 Pane 设置一个最小尺寸,例如,当它达到 100 像素高时,它会停止调整大小。然后,您可以允许其折叠,以便用户仍然可以仅显示 WebView。

关于cocoa - SplitView 未正确调整 subview 中 NSTableView 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9483256/

相关文章:

objective-c - 如何使 NSTableView 滚动到最近添加的行?

cocoa - 使用每行不同的单元格(和数据类型)实现 NSOutlineView/NSTableView

objective-c - NSSplitView - 如何在 View 调整大小后收到通知?

swift - 如何获取NSSplitView splitView :shouldHideDividerAtIndex:to be called at startup?

objective-c - -performSelector :onThread:withObject:waitUntilDone: 的内存问题

objective-c - 向 NSNumber 发送 intValue 消息会导致 "Bad Access"错误

macos - 使用 NSPopUpButtonCell 时在 NSTableView 中获取重复的标题按钮单元格

xcode - 无法更改 NSSplitView 上的委托(delegate)

iphone - UIView 和 NSTimer 不释放内存

objective-c - 从另一个类访问属性,单独的 XIB