ParamText()是在基于帕斯卡串的串置换参数的真的老方法。也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不与新的对话框工作了和苹果忘了指定如何使用它们。

是否有任何可用的替代,不会要求我修改字符串中的原始参数格式?

有帮助吗?

解决方案

我发现自己的解决方案,但我不是很高兴。


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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top