ParamText()
是替换基于Pascal字符串的字符串中的参数的一种非常古老的方法。此外StandardAlert
还没有完全准备好Unicode。
新的消息框(不是那么新)替换是CFUserNotificationDisplayNotice
但是这个预期CFString
我发现如果我要切换到使用CFString我无法使用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 );
我发现ParamText
不再适用于新的对话框,并且Apple忘记指定如何使用它们。
是否有任何替代品可以不要求我更改字符串中的原始参数格式?
答案 0 :(得分:1)
我发现自己是一个解决方案,但我对此并不满意。
CMutableStringRef alertString2;
...
alertString2 = CFStringCreateMutableCopy(NULL, CFStringGetLength(alertString), alertString);
CFStringFindAndReplace( alertString2,
CFSTR("^2"),
minRange, // another CFString
CFRangeMake(0, CFStringGetLength(alertString2)),
0);