Cómo reemplazar edad paramText / StandartAlert con los reemplazos CFString nuevos?

StackOverflow https://stackoverflow.com/questions/2042535

  •  19-09-2019
  •  | 
  •  

Pregunta

ParamText() es una forma muy antigua de la sustitución de parámetros en una cadena que se basa en cadenas Pascal. También StandardAlert no es del todo listo Unicode.

El nuevo cuadro de mensaje (no tan nuevo) de reemplazo es CFUserNotificationDisplayNotice pero éste espera CFString y descubrí que si estoy a punto de pasar a utilizar CFString No soy capaz de usar el reemplazo de parámetros paramText más.


Str255 alertString; // PascalString, yuck!
ParamText(NULL, NULL, minString, maxString);
localize( "A value between ^2 and ^3 is required.", &alertString );
StandardAlert( kAlertNoteAlert, (const unsigned char *)&alertString, nil, nil, &itemHit );

descubrí que ParamText no funciona con los nuevos diálogos más y que Apple se olvidó de especificar cómo usarlos.

¿Hay alguna sustitución disponibles que no requeriría de mí para cambiar el formato de los parámetros originales en las cadenas?

¿Fue útil?

Solución

Me encontré una solución, pero no estoy muy contento con él.


CMutableStringRef alertString2;
...
alertString2 = CFStringCreateMutableCopy(NULL, CFStringGetLength(alertString), alertString);
CFStringFindAndReplace( alertString2, 
        CFSTR("^2"), 
        minRange,  // another CFString
        CFRangeMake(0, CFStringGetLength(alertString2)),
        0);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top