【发布时间】:2017-01-06 14:57:11
【问题描述】:
我发现函数 String.characters.count 对于其中行是表情符号标志的行有一个奇怪的行为:
import UIKit
var flag = "????????????????????????????????????????????????"
print(flag.characters.count)
print(flag.unicodeScalars.count)
print(flag.utf16.count)
print(flag.utf8.count)
flag = "????????0????????0????????0"
print(flag.characters.count)
print(flag.unicodeScalars.count)
print(flag.utf16.count)
print(flag.utf8.count)
我想在 UITextView 中编写和编辑时限制文本的字符串长度。 其实我的代码是这样的:
var lastRange: NSRange? = nil
var lastText: String? = nil
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText string: String) -> Bool {
if string == "\n" {
// Execute same code
return false
}
var text = string.uppercaseString
if lastText != text || lastRange != nil && (lastRange!.location != range.location || lastRange!.length != range.length) {
lastRange = range
lastText = text
var text = (self.textView.text ?? "" as NSString).stringByReplacingCharactersInRange(range, withString: string)
// Delete chars if length more kMaxLengthText
while text.utf16.count >= kMaxLengthText {
text.removeAtIndex(text.endIndex.advancedBy(-1))
}
// Set position after insert text
self.textView.selectedRange = NSRange(location: range.location + lastText!.utf16.count, length: 0)
}
return false
}
【问题讨论】:
-
将代码放入问题本身。
-
请edit您的问题,而不是在 cmets 中添加代码。谢谢。
-
感谢 Martin R 的链接,但它不能解决我的问题 :(
-
我想删除textview中的最后一个字符:text.removeAtIndex(text.endIndex.advancedBy(-1))
-
如果最后几个符号标志 - 全部删除