public virtual NSView OpaqueAncestor() { NSView self = this; NSView next = _super_view; NSView current = self; while (next != null) { if (current.Opaque == true) { break; } current = next; next = current._super_view; } return current; }