public void UpdateKeyViews() { nint row = TableView.RowForView(this); if (row <= 0) { return; } NSView view; PropertyEditorControl ctrl = null; do { row--; view = TableView.GetView(0, row, makeIfNecessary: false); ctrl = (view as EditorContainer)?.EditorView?.NativeView as PropertyEditorControl; } while (row > 0 && ctrl == null); if (ctrl != null) { ctrl.LastKeyView.NextKeyView = FirstKeyView; ctrl.UpdateKeyViews(); } else if (row == 0 && view is PanelHeaderEditorControl header) { header.SetNextKeyView(FirstKeyView); } }
public void UpdateKeyViews(bool backward = true, bool forward = true) { if (TableRow < 0) { return; } PropertyEditorControl ctrl = null; //FIXME: don't hardcode column if (backward && TableRow > 0 && (ctrl = TableView.GetView(1, TableRow - 1, false) as PropertyEditorControl) != null) { ctrl.LastKeyView.NextKeyView = FirstKeyView; ctrl.UpdateKeyViews(forward: false); } //FIXME: don't hardcode column if (forward && TableRow < TableView.RowCount - 1 && (ctrl = TableView.GetView(1, TableRow + 1, false) as PropertyEditorControl) != null) { LastKeyView.NextKeyView = ctrl.FirstKeyView; ctrl.UpdateKeyViews(backward: false); } }