我发现功能String.characters.count一个奇怪的行为在行哪一行是表情符号标志:如何从字符串的末尾删除标志?
import UIKit
var flag = ""
print(flag.characters.count)
print(flag.unicodeScalars.count)
print(flag.utf16.count)
print(flag.utf8.count)
flag = "000"
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]您的问题,而不是在评论中添加代码。谢谢。 – Moritz
感谢您的链接马丁R,但它不能解决我的问题:( –