Como substituir o antigo Paramtext/Standartalert por substituições mais recentes do CFString?
Pergunta
ParamText()
é uma maneira muito antiga de substituir parâmetros em uma string baseada em seqüências de caracteres Pascal. Também StandardAlert
não está muito pronto para unicode.
A nova caixa de mensagem (não tão nova) a substituição é CFUserNotificationDisplayNotice
Mas este espera CFString
E descobri que, se estou prestes a mudar para usar o CFString, não posso mais usar a substituição de parâmetros do ParamText.
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 );
Eu descobri isso ParamText
Não funciona mais com os novos diálogos e que a Apple esqueceu de especificar como usá -los.
Existe alguma substituição disponível que não exigisse que eu altere o formato dos parâmetros originais em strings?
Solução
Eu me vi uma solução, mas não estou muito satisfeito com isso.
CMutableStringRef alertString2;
...
alertString2 = CFStringCreateMutableCopy(NULL, CFStringGetLength(alertString), alertString);
CFStringFindAndReplace( alertString2,
CFSTR("^2"),
minRange, // another CFString
CFRangeMake(0, CFStringGetLength(alertString2)),
0);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow