本文整理汇总了C#中NSOutlineView类的典型用法代码示例。如果您正苦于以下问题:C# NSOutlineView类的具体用法?C# NSOutlineView怎么用?C# NSOutlineView使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
NSOutlineView类属于命名空间,在下文中一共展示了NSOutlineView类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetupOutlineView
// This sets up a NSOutlineView for demonstration
internal static NSView SetupOutlineView (CGRect frame)
{
// Create our NSOutlineView and set it's frame to a reasonable size. It will be autosized via the NSClipView
NSOutlineView outlineView = new NSOutlineView () {
Frame = frame
};
// Every NSOutlineView must have at least one column or your Delegate will not be called.
NSTableColumn column = new NSTableColumn ("Values");
outlineView.AddColumn (column);
// You must set OutlineTableColumn or the arrows showing children/expansion will not be drawn
outlineView.OutlineTableColumn = column;
// Setup the Delegate/DataSource instances to be interrogated for data and view information
// In Unified, these take an interface instead of a base class and you can combine these into
// one instance.
outlineView.Delegate = new OutlineViewDelegate ();
outlineView.DataSource = new OutlineViewDataSource ();
// NSOutlineView expects to be hosted inside an NSClipView and won't draw correctly otherwise
NSClipView clipView = new NSClipView (frame) {
AutoresizingMask = NSViewResizingMask.HeightSizable | NSViewResizingMask.WidthSizable
};
clipView.DocumentView = outlineView;
return clipView;
}
示例2: GetViewForItem
public NSView GetViewForItem(NSOutlineView outlineView, NSTableColumn tableColumn, NSObject item)
{
var libraryBrowserItem = (LibraryBrowserItem)item;
var view = (NSTableCellView)outlineView.MakeView("cellLibrary", this);
view.TextField.Font = NSFont.FromFontName("Roboto", 11);
view.TextField.StringValue = libraryBrowserItem.Entity.Title;
switch (libraryBrowserItem.Entity.EntityType)
{
case LibraryBrowserEntityType.AllSongs:
view.ImageView.Image = ImageResources.Images.FirstOrDefault(x => x.Name == "icon_artists");
break;
case LibraryBrowserEntityType.Artists:
view.ImageView.Image = ImageResources.Images.FirstOrDefault(x => x.Name == "icon_artists");
break;
case LibraryBrowserEntityType.Album:
case LibraryBrowserEntityType.Albums:
case LibraryBrowserEntityType.ArtistAlbum:
view.ImageView.Image = ImageResources.Images.FirstOrDefault(x => x.Name == "icon_vinyl");
break;
case LibraryBrowserEntityType.Artist:
view.ImageView.Image = ImageResources.Images.FirstOrDefault(x => x.Name == "icon_user");
break;
}
return view;
}
示例3: GetCell
public override NSCell GetCell(NSOutlineView view, NSTableColumn column, MonoMac.Foundation.NSObject item)
{
NSCmisTree cmis = item as NSCmisTree;
if (cmis == null) {
Console.WriteLine ("GetCell Error");
return null;
}
if (column == null) {
return null;
} else if (column.Identifier.Equals ("Name")) {
// Console.WriteLine ("GetCell " + cmis);
NSButtonCell cell = new NSButtonCell ();
if (cmis.Parent != null)
cell.SetButtonType (NSButtonType.Switch);
else
cell.SetButtonType (NSButtonType.Radio);
// FIXME cell.AllowsMixedState = true;
cell.Title = cmis.Name;
cell.Editable = true;
return cell;
} else {
NSTextFieldCell cell = new NSTextFieldCell ();
return cell;
}
}
示例4: ItemExpandable
public override bool ItemExpandable (NSOutlineView outlineView, NSObject item)
{
if (item != null) {
try {
if (item is DirectoryNode) {
DirectoryNode node = item as DirectoryNode;
node.PopulateChildren (node.Name);
return (node.NumberOfChildren () != 0);
} else if (item is ScopeNode) {
ScopeNode passedNode = item as ScopeNode; // cast to appropriate type of node
return (passedNode.NumberOfChildren () != 0);
} else {
System.Diagnostics.Debug.WriteLine ("passedNode cast failed.");
return false;
}
} catch (Exception e) {
System.Diagnostics.Debug.WriteLine (e.Message);
return false;
}
} else {
// if null, it's asking about the root element
return true;
}
}
示例5: GetView
public override NSView GetView (NSOutlineView outlineView, NSTableColumn tableColumn, NSObject item) {
// Cast item
var product = item as Product;
// This pattern allows you reuse existing views when they are no-longer in use.
// If the returned view is null, you instance up a new view
// If a non-null view is returned, you modify it enough to reflect the new data
NSTableCellView view = (NSTableCellView)outlineView.MakeView (tableColumn.Title, this);
if (view == null) {
view = new NSTableCellView ();
if (tableColumn.Title == "Product") {
view.ImageView = new NSImageView (new CGRect (0, 0, 16, 16));
view.AddSubview (view.ImageView);
view.TextField = new NSTextField (new CGRect (20, 0, 400, 16));
} else {
view.TextField = new NSTextField (new CGRect (0, 0, 400, 16));
}
view.TextField.AutoresizingMask = NSViewResizingMask.WidthSizable;
view.AddSubview (view.TextField);
view.Identifier = tableColumn.Title;
view.TextField.BackgroundColor = NSColor.Clear;
view.TextField.Bordered = false;
view.TextField.Selectable = false;
view.TextField.Editable = !product.IsProductGroup;
}
// Tag view
view.TextField.Tag = outlineView.RowForItem (item);
// Allow for edit
view.TextField.EditingEnded += (sender, e) => {
// Grab product
var prod = outlineView.ItemAtRow(view.Tag) as Product;
// Take action based on type
switch(view.Identifier) {
case "Product":
prod.Title = view.TextField.StringValue;
break;
case "Details":
prod.Description = view.TextField.StringValue;
break;
}
};
// Setup view based on the column selected
switch (tableColumn.Title) {
case "Product":
view.ImageView.Image = NSImage.ImageNamed (product.IsProductGroup ? "tags.png" : "tag.png");
view.TextField.StringValue = product.Title;
break;
case "Details":
view.TextField.StringValue = product.Description;
break;
}
return view;
}
示例6: ItemExpandable
public override bool ItemExpandable (NSOutlineView outlineView, NSObject item)
{
var result = item as ResultWrapper;
if (result != null)
return result.HasChildren;
else
return false;
}
示例7: GetObjectValue
public override NSObject GetObjectValue (NSOutlineView outlineView, NSTableColumn forTableColumn, NSObject byItem)
{
TreeDataNode nodeItem = byItem as TreeDataNode;
if (nodeItem == null)
return null;
return (NSString)nodeItem.CombinedName;
}
示例8: GetChildrenCount
/// <summary>
/// Gets the children count.
/// </summary>
/// <returns>The children count.</returns>
/// <param name="outlineView">Outline view.</param>
/// <param name="item">Item.</param>
public override nint GetChildrenCount (NSOutlineView outlineView, Foundation.NSObject item)
{
if (item == null) {
return Items.Count;
} else {
return ((SourceListItem)item).Count;
}
}
示例9: WillDisplayCell
public override void WillDisplayCell (NSOutlineView outlineView, NSObject cell, NSTableColumn tableColumn, NSObject item)
{
var textCell = cell as MacImageListItemCell;
if (textCell != null) {
textCell.UseTextShadow = true;
textCell.SetGroupItem (this.IsGroupItem (outlineView, item), outlineView, NSFont.SmallSystemFontSize, NSFont.SmallSystemFontSize);
}
}
示例10: GetChild
/// <summary>
/// Gets the child.
/// </summary>
/// <returns>The child.</returns>
/// <param name="outlineView">Outline view.</param>
/// <param name="childIndex">Child index.</param>
/// <param name="item">Item.</param>
public override NSObject GetChild (NSOutlineView outlineView, nint childIndex, Foundation.NSObject item)
{
if (item == null) {
return Items [(int)childIndex];
} else {
return ((SourceListItem)item) [(int)childIndex];
}
}
示例11: ItemExpandable
public override bool ItemExpandable (NSOutlineView outlineView, NSObject item)
{
if (item == null) {
return Products [0].IsProductGroup;
} else {
return ((Product)item).IsProductGroup;
}
}
示例12: GetChild
public override NSObject GetChild (NSOutlineView outlineView, nint childIndex, NSObject item)
{
if (item == null) {
return Products [(int)childIndex];
} else {
return ((Product)item).Products [(int)childIndex];
}
}
示例13: GetChildrenCount
public override nint GetChildrenCount (NSOutlineView outlineView, NSObject item)
{
if (item == null) {
return Products.Count;
} else {
return ((Product)item).Products.Count;
}
}
示例14: GetChildrenCount
public override int GetChildrenCount (NSOutlineView outlineView, NSObject item)
{
if (item is TreeDataNode) {
TreeDataNode nodeItem = item as TreeDataNode;
return nodeItem.Nodes.Count;
}
return _nodes.Count;
}
示例15: GetChild
public override NSObject GetChild(NSOutlineView outlineView, int childIndex, NSObject ofItem)
{
if (ofItem != null) {
return ((SidebarListItem)ofItem).Children [childIndex];
}
else {
return rootItems [childIndex];
}
}