我正在尝试为我之前提出的这个问题找到解决方案:Populate SourceList in Xamarin.Mac app
我目前正在尝试实现的GetView
方法,NSOutlineViewDelegate
看看是否可能会在我拥有的 OutlineView 中创建一些文本。
但我一直试图向 NSView 对象添加东西。当我查看示例 OutlineView(将其拖到窗口上时默认获得的)时,TableCellView
每个项目都有一个。结构如下所示(首先是标题,然后是常规项目):
Table Cell View
Static Text - HEADER CELL
Text Field Cell - HEADER CELL
Table Cell View
Image View
Image Cell
Static Text - Table View Cell
Text Field Cell - Table View Cell
到目前为止,我的方法如下所示:
public override NSView GetView (NSOutlineView outlineView, NSTableColumn tableColumn, NSObject item)
{
var navigation = item as Navigation;
var cell = new NSTableCellView();
if (navigation.IsHeader) {
} else {
}
return cell;
}
我首先猜测标题是什么,例如,我创建一个NSTableHeaderCell
并将StringValue
属性设置为navigation.Name
. 但我不知道如何将它作为孩子添加到我的NSTableViewCell
.
还是我以完全错误的方式解决这个问题?我对 Mono 和 Xamarin 非常陌生(只使用 WPF 和 XAML 完成了 C# 和 Visual Studio),而且我之前从未在 Objective-C 中进行过编程(所以我花了一段时间才弄清楚方法/类的奇怪语法)。