我有一个通过委托方法NSTokenFiled
验证插入的令牌。-tokenField:shouldAddObjects:atIndex:
不幸的是,仅当用户按下标记字符时才会调用此方法。当他/她在控件外单击时,按 esc 或 tab 键,未完成的字符串将自动转换为令牌,而无需调用验证方法。
在询问谷歌后,我注意到这个问题是已知的,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。