Reconciliación de estados de apariencia de radios y casillas de verificación
Escribir un valor de campo de botón ahora reconcilia el estado /AS de cada widget con la selección, y el aplanado reconcilia de nuevo antes de generar las apariencias, de modo que un /AS Off obsoleto nunca pueda ganar sobre un /V actualizado
Escrituras de valores
SetFormFieldValue y SetLoadedFormFieldValueByName recorren el campo (y sus /Kids) y seleccionan, en el diccionario de estado /AP /N de cada widget, el estado cuyo nombre es igual al /V heredado; todos los demás widgets retroceden a Off. Los radio hijos que no llevan un /V resuelven la selección mediante su cadena de padres
Aplanado
FlattenLoadedFormFields reconcilia cada destino antes de la generación de apariencias, de modo que los valores importados (FDF, XFDF) se aplanen al estado de casilla o radio correcto incluso cuando el documento se guardó por última vez con una selección distinta
Estabilidad de la regeneración
EnsureLoadedFieldAppearanceStream conserva el nombre de estado activado existente de un diccionario de estado al regenerar las apariencias de los botones, de modo que un valor de exportación de radio nunca se renombre a un Yes genérico, y los radio hijos sin diccionario de estado derivan su nombre de estado activado de su propio /T