我无法弄清楚为什么当我运行我的程序并按下(+)按钮以使默认谓词控件添加另一行时,它不会增加谓词控件的大小并将下面的相应NSOutlineView推下。
现在发生的事情是它会添加行,但是我必须使用鼠标滚轮在小框架内滚动,而不是增长框架以适应行的高度。
我正在使用AutoLayout,在这种情况下不确定这是否有问题。我相信我的约束设置正确。我设置了一个约束来确保NSOutlineView和NSPredicateView之间的距离始终为-1,以便窗口滚动它正确地保持在原位。我不确定这甚至是问题,但目前对此表示怀疑。只是让你知道我已经意识到了。
答案 0 :(得分:2)
我终于找到了答案!乌拉!
以下是一个简单的答案:SetFrame不适用于AUTOLAYOUT!
相反,你必须编辑约束!
这意味着在NSPredicateEditor上设置'height'的约束,并将IBOutlet设置为你的代码。
然后使用以下命令。
NSInteger newRowCount = [_predicateEditor numberOfRows];
NSInteger rowHeight = [_predicateEditor rowHeight];
[[_predicateEditorHeight animator] setConstant:rowHeight*newRowCount];
像魅力一样!