Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSView控件不调整大小?_Cocoa_Nsview_Autosize - Fatal编程技术网

Cocoa NSView控件不调整大小?

Cocoa NSView控件不调整大小?,cocoa,nsview,autosize,Cocoa,Nsview,Autosize,我有一个NSView,里面有一个NSTableView 如果视图如下所示: Scollview(和tableview)的大小和位置属性如下所示: 那么,当我调整视图的大小时,它为什么看起来像这样: 是否未正确设置自动调整大小属性?据我所知,它们应该是?只有在“尺寸信息”面板中手动输入尺寸时,带有滚动视图的表格才会自动调整到视图的尺寸。如果用鼠标拖动视图的控制柄,它们将不会自动调整大小。为了更清楚,在Interface Builder中设计视图时,您不会看到自动调整大小的行为,除非子视图的边

我有一个NSView,里面有一个NSTableView

如果视图如下所示:

Scollview(和tableview)的大小和位置属性如下所示:

那么,当我调整视图的大小时,它为什么看起来像这样:


是否未正确设置自动调整大小属性?据我所知,它们应该是?

只有在“尺寸信息”面板中手动输入尺寸时,带有滚动视图的表格才会自动调整到视图的尺寸。如果用鼠标拖动视图的控制柄,它们将不会自动调整大小。

为了更清楚,在Interface Builder中设计视图时,您不会看到自动调整大小的行为,除非子视图的边框与superview的相应边框重合,并且启用了实时自动调整大小

这种行为的存在是因为调整超级视图的大小可以用来表示您希望在子视图区域和超级视图区域之间留有一定的边距-例如,您可以在子视图的右边框和超级视图的右边框之间留有100磅的边距,然后将该边距增加到,例如,通过拖动superview控制柄执行200pt

编辑:另一方面,如果要调整superview的大小,同时根据自动调整大小掩码保留边距,则可以在按住alt/option键的同时拖动superview控制柄


使用Cocoa Simulator(文件->模拟界面)测试界面,包括自动调整大小行为。

表格视图周围的句柄显示您正在Interface Builder中测试它。如何在Cocoa模拟器或您的应用程序中进行测试?自动调整大小是自动调整大小掩码的一个功能。可以自由拖动控制柄来调整子视图(在本例中为表视图)的大小,自动调整大小时将考虑此大小。如果要调整窗口或其中的视图的大小,请使用内部视图上的自动调整大小掩码,在拖动时按住命令键。