public override NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, nint row) { EditableTextView view = (EditableTextView)tableView.MakeView(CellIdentifier, this); if (view == null) { view = new EditableTextView { Identifier = CellIdentifier, Bordered = false, BackgroundColor = NSColor.White, Selectable = true, Editable = true, PlaceholderString = "New Keyword", }; view.EditingEnded += (sender, e) => { AdjustLibraryKeywordGroup(view, (int)row); }; } view.StringValue = string.Format("{0}{1}", _dataSource.Keywords[(int)row].IsDeleted ? ">> DELETED << " : "", _dataSource.Keywords[(int)row].GroupName); return(view); }
private NSView CreateValueView(DataSourceOutlineViewSourceFieldsInfo field) { NSView view = null; Type fieldType = field.FieldInfo.FieldType; if (fieldType == typeof(DateField)) { view = new NSDatePicker { DatePickerStyle = NSDatePickerStyle.TextField, DatePickerElements = NSDatePickerElementFlags.YearMonthDateDay }; var dateField = view as NSDatePicker; dateField.ValidateProposedDateValue += (sender, e) => field.Fields[0].Value = ((DateTime)dateField.DateValue).ToLocalTime(); } else { view = new EditableTextView() { Selectable = true, Editable = true, Bordered = false, PlaceholderString = $"New {field.FieldInfo.Name}" }; var textField = view as NSTextField; if (fieldType == typeof(NumberField)) { textField.Formatter = new NSNumberFormatter(); } textField.StringValue = field.Value.ToString(); textField.EditingEnded += (sender, e) => field.Value = textField.StringValue; } return(view); }