Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/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
Swift 将NSOutlineView或NSTableView单元格高度调整为中的自定义视图_Swift_Autolayout_Swiftui_Nstableview_Nsoutlineview - Fatal编程技术网

Swift 将NSOutlineView或NSTableView单元格高度调整为中的自定义视图

Swift 将NSOutlineView或NSTableView单元格高度调整为中的自定义视图,swift,autolayout,swiftui,nstableview,nsoutlineview,Swift,Autolayout,Swiftui,Nstableview,Nsoutlineview,我有一个NSOutlineView视图,该视图使用自定义SwiftUI视图作为其单元格: func-outlineView(\outlineView:NSOutlineView,viewFor-tableColumn:NSTableColumn?,项目:Any)->NSView?{ guard tableColumn?.identifier.rawValue==“正确的id”else{return} guard let myItem=项目为?MyType else{return} 返回NSHos

我有一个
NSOutlineView
视图,该视图使用自定义SwiftUI视图作为其单元格:

func-outlineView(\outlineView:NSOutlineView,viewFor-tableColumn:NSTableColumn?,项目:Any)->NSView?{
guard tableColumn?.identifier.rawValue==“正确的id”else{return}
guard let myItem=项目为?MyType else{return}
返回NSHostingView(rootView:myswituiview(someProperty:myItem))
}
自定义视图的高度可以更改,因此我想找到一种方法来动态调整
NSOutlineView
单元格的高度,使其与托管在其中的自定义视图相匹配。到目前为止,我只在
NSOutlineViewDelegate
中找到了这个函数,它允许我设置行的高度:

func大纲视图(\outlineView:NSOutlineView,rowByItem项目的高度:任意)->CGFloat
但是,我只能基于
项设置行的高度,而不能基于自定义视图


我是否可以直接访问每个单元格/行,并将其高度设置为自定义视图的高度?

根据您编写的代码,您已经知道正在为项目创建什么视图(myswituiview)。您应该能够返回该视图的默认高度。@RichardSmall您的意思是为
项目
重新创建
myswitUIView
实例,然后读取其高度?如果视图是一个可以工作的恒定高度,或者将您创建的视图也存储在项目本身中。可能使用弱引用来避免保留周期。根据您编写的代码,您已经知道正在为项目创建什么视图(myswiftuiew)。您应该能够返回该视图的默认高度。@RichardSmall您的意思是为
项目
重新创建
myswitUIView
实例,然后读取其高度?如果视图是一个可以工作的恒定高度,或者将您创建的视图也存储在项目本身中。可能使用弱引用以避免保留循环。