我有一個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