新しいCFStringに代替して、古いParamText / StandartAlertを交換する方法は?
質問
ParamText()
はパスカル文字列に基づいて、文字列内のパラメータを置き換える本当に古い方法です。またStandardAlert
はかなりのUnicodeの準備ができていない。
新しいメッセージボックス(それほど新しいものではない)の交換がCFUserNotificationDisplayNotice
ですが、この1つは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 );
私はAppleがそれらを使用する方法を指定するのを忘れていることParamText
はもう新しいダイアログでは動作しないことが判明してます。
の文字列の元のパラメータの形式を変更するために私を必要としない利用可能な代替はありますか?
解決
私は自分自身に解決策を見つけたが、私はそれについて非常に満足していませんよ。
CMutableStringRef alertString2;
...
alertString2 = CFStringCreateMutableCopy(NULL, CFStringGetLength(alertString), alertString);
CFStringFindAndReplace( alertString2,
CFSTR("^2"),
minRange, // another CFString
CFRangeMake(0, CFStringGetLength(alertString2)),
0);
所属していません StackOverflow