2015-01-31 62 views
0

我目前有一個拆分視圖,當我調整應用程序窗口的大小時,我只希望右側子視圖變大(所以左側保持完全相同的大小)。我有一個nstextfield在右側子視圖中,我可以輸入東西。但是,在某些情況下,我調用[_textFieldInQuestion setEditable:NO]。這樣做後,當我嘗試調整應用程序的大小時,右側會變大,直到某個點,然後左側會增長。我在SO上看到一篇文章,我應該繼承nstextfield來實現這種行爲,但我想知道是否有更優雅的替代方案,如果沒有,我們將如何重寫自動佈局方法來生成我描述的行爲。NSTextField停止調整不可編輯的尺寸

+0

不是答案,而是解決方法。我添加了一個與textfield類似的虛擬nsview。然後我添加了寬度約束到文本字段。每當splitview委託說它調整大小,我設置textfield約束常數等於nsview的幀的寬度。似乎現在工作 – CoderNinja 2015-02-01 00:03:46

回答

0

當文本字段不可編輯時,它具有基於其內容的固有寬度。 (當它是可編輯的時,文本字段的寬度跟蹤其內容是沒有意義的,因爲它的內容不是「固有的」。)

文本字段的水平內容擁抱優先級大概高於持久優先級分割視圖的左視圖。因此,文本字段抵制「伸展」比其內容更寬,而不是左側視圖的大小增加。

減少文本字段的水平內容擁抱優先級和/或增加左視圖的保持優先級,以使前者大於後者。