이전 Paramtext/Standartalert를 최신 CFString 교체로 바꾸는 방법은 무엇입니까?
문제
ParamText()
파스칼 스트링을 기반으로하는 문자열에서 매개 변수를 대체하는 정말 오래된 방법입니다. 또한 StandardAlert
유니 코드가 준비되지 않습니다.
새 메시지 상자 (새롭지 않은) 교체는 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은 사용 방법을 지정하는 것을 잊었습니다.
문자열에서 원래 매개 변수 형식을 변경할 필요가없는 교체품이 있습니까?
해결책
나는 나 자신이 해결책을 찾았지만 그것에 대해 기뻐하지 않습니다.
CMutableStringRef alertString2;
...
alertString2 = CFStringCreateMutableCopy(NULL, CFStringGetLength(alertString), alertString);
CFStringFindAndReplace( alertString2,
CFSTR("^2"),
minRange, // another CFString
CFRangeMake(0, CFStringGetLength(alertString2)),
0);
제휴하지 않습니다 StackOverflow