이전 Paramtext/Standartalert를 최신 CFString 교체로 바꾸는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2042535

  •  19-09-2019
  •  | 
  •  

문제

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);

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top