2015-01-31 97 views
0

我目前有一个拆分视图,当我调整应用程序窗口的大小时,我只希望右侧子视图变大(所以左侧保持完全相同的大小)。我有一个nstextfield在右侧子视图中,我可以输入东西。但是,在某些情况下,我调用[_textFieldInQuestion setEditable:NO]。这样做后,当我尝试调整应用程序的大小时,右侧会变大,直到某个点,然后左侧会增长。我在SO上看到一篇文章,我应该继承nstextfield来实现这种行为,但我想知道是否有更优雅的替代方案,如果没有,我们将如何重写自动布局方法来生成我描述的行为。NSTextField停止调整不可编辑的尺寸

+0

不是答案,而是解决方法。我添加了一个与textfield类似的虚拟nsview。然后我添加了宽度约束到文本字段。每当splitview委托说它调整大小,我设置textfield约束常数等于nsview的帧的宽度。似乎现在工作 – CoderNinja 2015-02-01 00:03:46

回答

0

当文本字段不可编辑时,它具有基于其内容的固有宽度。 (当它是可编辑的时,文本字段的宽度跟踪其内容是没有意义的,因为它的内容不是“固有的”。)

文本字段的水平内容拥抱优先级大概高于持久优先级分割视图的左视图。因此,文本字段抵制“伸展”比其内容更宽,而不是左侧视图的大小增加。

减少文本字段的水平内容拥抱优先级和/或增加左视图的保持优先级,以使前者大于后者。