Frage

ParamText() ist eine wirklich alte Art und Weise Parameter in einer Zeichenkette zu ersetzen, die auf Pascal Strings basieren. Auch StandardAlert ist nicht ganz Unicode bereit.

Die neue Message-Box (nicht so neu) Ersatz ist CFUserNotificationDisplayNotice aber dieses Hotel erwartet CFString und ich fand heraus, dass, wenn ich darüber Schalter bin zu verwenden CFString ich nicht in der Lage bin mehr TextParam Parameter Ersatz zu verwenden.


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

Ich fand heraus, dass ParamText nicht funktioniert mit den neuen Dialogen mehr und dass Apple angeben vergessen, wie sie verwenden.

Gibt es einen Ersatz zur Verfügung, die mir nicht erfordern würde die ursprünglichen Parameter Format in Strings zu ändern?

War es hilfreich?

Lösung

fand ich mich um eine Lösung, aber ich bin nicht ganz darüber erfreut.


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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top