--- title: Retrollamadas UIX y límite superior del menu summary: Suscríbete a un gancho UIX de terceros y cuenta la fila de iconos compartida de X4. section: ui kind: guide status: reference updated: 2026-10-27 tags: ["X4","modding","ui","hooks","and","top","menu"] sources: ["https://chemodun.github.io/x4/modding-support/ui-modding/uix-callbacks/","https://chemodun.github.io/x4/modding-support/ui-modding/top-menu-entries/","https://github.com/kuertee/x4-mod-ui-extensions"] --- ## UIX es una dependencia separada Las extensiones UI de kurtee y HUD añaden puntos de despacho a los menús estándar. `menu.registerCallback` y `Helper.registerCallback` mecanismo no debe ser asumido en vainilla. UIX tiene su propia historia de la versión: un gancho en la línea 9.x no tiene que existir en 8.x. ## Un ejemplo de suscripción Ejecutar este fragmento después de UIX y `MapMenu` están listos: ```lua local menu = Helper.getMenu("MapMenu") if menu and type(menu.registerCallback) == "function" then menu.registerCallback("createPropertyOwned_on_start", function(config) DebugError("[WIKI] owned-property list is being built") end, "wiki_ui_demo") end ``` **Cuándo y qué imprime:** llegar a este punto de despacho mientras se construye la lista de propiedad del mapa produce `[WIKI] owned-property list is being built`. El ejemplo no añade ningún botón y no cambia ninguna propiedad. No afirma una estructura para `config`, que el encargado no lee. Eliminar sólo su suscripción durante la fase de limpieza apropiada: ```lua menu.deregisterCallback("createPropertyOwned_on_start", nil, "wiki_ui_demo") ``` Este es un paso de limpieza separado, no código para ejecutar inmediatamente después de la inscripción. `menu` tabla con ese método. ## Argumentos y valores de retorno Lea los argumentos de una callback por separado de cómo se utiliza su retorno. Los eventos pueden descartar las devoluciones; las anulaciones pueden elegir la última respuesta, pasarla a través de una cadena o detener el envío. `registerCallback` el nombre no establece un contrato para todos los ganchos. La fuente proporciona tarjetas de registro, titular, agregación y disponibilidad por liberación. ## La fila de iconos compartida Varios menús de pantalla completa utilizan `Helper.topLevelMenus`. La fuente explica que `Helper.maxTableCols == 13` permite 11 entradas visibles porque dos columnas están reservadas. `Helper.checkTopLevelConditions`, no sólo la longitud de la lista. Las versiones 8.00/9.00 tienen `Helper.topLevelConfig.scrolling`. Un icono personalizado necesita manejo de desbordamiento, contando cuando las condiciones cambian y la limpieza con conocimiento de propiedad. No deshabilitar el desplazamiento de otro mod solicitado. La fuente detalla el algoritmo de coordinación. ## Comprobaciones de compatibilidad Compruebe las versiones exactas de X4/UIX, el tiempo de inicialización, la apertura de mapas repetidos, la desregistración y varios mods de la UI juntos. Una comprobación de sintaxis local no establece una devolución de llamada en el juego. Estos fragmentos no se ejecutaron en X4. [API de UI compartidas](wiki:ui-settings), [ventanas personalizadas](wiki:create-ui) y [Lua/MD](wiki:md-lua-bridge).