我有一个NSTokenFiled
,它通过-tokenField:shouldAddObjects:atIndex:
委托方法验证插入的标记。不幸的是,只有在用户按下标记字符时才会调用此方法。当他/她在控制器外单击时,按Esc或Tab键,未完成的字符串会自动转换为令牌,而不会调用验证方法。从NSString中删除标记字符
询问谷歌后,我注意到问题已知,并且有人在stackoverflow建议覆盖-control:isValidObject:
委托方法来验证剩余的字符串。
不幸的是,传递给此方法的对象是NSMutableString
,对于已经插入到令牌字段中的每个令牌都有一个不可见的字符。可能是这个可可如何跟踪显示令牌的位置。
我的问题是:如何删除这些非法字符?
到目前为止,我尝试了这些:
NSString *newString = [NSString stringWithUTF8String:[stringWithInvisibleCharcters UTF8String]];
NSString *newString = [stringWithInvisibleCharacters stringByTrimmingCharactersInSet:[NSCharacterSet illegalCharacterSet]];
NSString *newString = [stringWithInvisibleCharacters stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];
没有成功。我知道最后两个只有在令牌字符开头和结尾的情况下才有效,但这是我的情况。
编辑:
如果它有助于
NSLog(@"%hu",[(NSMutableString *)object characterAtIndex:0]);
回报65532.
什么ü的意思是无效字符/? – 2013-03-15 05:38:07