私のアプリでは、テキストを表示するCATextLayer
(文字の色を変更する)、色NSMutableAttributedString
を変更するために、特殊文字を削除してポップアップ ビューを表示したいのですNSMutableAttributedString
が、問題を解決するために特殊文字を削除する方法がわかりませんでした。
このタイプのo/pが欲しい
"code" to code //in NSMutableAttributedString, not in NSString
私のアプリでは、テキストを表示するCATextLayer
(文字の色を変更する)、色NSMutableAttributedString
を変更するために、特殊文字を削除してポップアップ ビューを表示したいのですNSMutableAttributedString
が、問題を解決するために特殊文字を削除する方法がわかりませんでした。
このタイプのo/pが欲しい
"code" to code //in NSMutableAttributedString, not in NSString
このような文字を削除するには、次のように記述します。
NSMutableString* mutableString = ...;
[mutableString replaceOccurrencesOfString:@"\"" withString:@"" options:0 range:NSMakeRange(0, mutableString.length)];
記号 " は \" と書かれていることに注意してください。これはエスケープ シーケンスと呼ばれます。C のそのような特殊文字のリストは次のとおりです - http://msdn.microsoft.com/en-us/library/h21280bw(v=vs.80).aspx
コードに適合する可能性がある場合は、これを試すことができます。
NSMutableString *mutableStrng = [NSMutableString stringWithCapacity:1000];
[mutableStrng setString:@"my name is i#pho#ne"];
[mutableStrng replaceOccurrencesOfString:@"#" withString:@"" options:0 range:NSMakeRange(0,
mutableStrng.length)];
NSMutableAttributedString *mutableAtrString = [[NSMutableAttributedString
alloc]initWithString:mutableStrng];
これを試してみてください...これが役立つかもしれません。
NSMutableString *unfilteredString = @"!@#$%^&*()_+|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
NSCharacterSet *notAllowedChars = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"] invertedSet];
NSMutableString *resultString = [[unfilteredString componentsSeparatedByCharactersInSet:notAllowedChars] componentsJoinedByString:@""];
NSLog (@"Result: %@", resultString);