Swift change String with range & and shouldChangeTextInRange 如何知道退格

标签 swift textview swift2 mention

我是 Swift 的新手,我有很多 RND,但我无法获得成功。我有用范围替换字符串我正在使用这段代码但是它的返回错误我正在使用 swift 2.0

let aString: String = txt_description.text
        let newString = aString.stringByReplacingOccurrencesOfString(varattherate, withString:"@\(getText) ", options: NSStringCompareOptions.LiteralSearch, range: NSMakeRange(0, 10))

问题是,我已经从字符串中替换了文本 我的字符串是 "my name is @test but i want change @te" 并替换 "@te" 替换为 "@test" 但我对字符串的最后一个 "@te"进行了更改,我尝试创建“自动完成 TextView ”

但是我正在使用这段代码

 let aString: String = "my name is @test but i want change @te"
 let newString = aString.stringByReplacingOccurrencesOfString(varattherate, withString:"@\(getText) ", options: NSStringCompareOptions.LiteralSearch, range:nil)

输出是“我的名字是@testst,但我想更改@test” 但我需要输出“我的名字是@test,但我想更改@test”不首先更改@te,只有最后一个是动态更改

第二个问题是 如何知道在这个函数中退格

 func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool 
{


}

我正在尝试此代码但无法正常工作 文本:字符串)-> bool {

    if(text == "\b") {
        println("This is backspace ")
        return false
    }
}

最佳答案

检查这个例子来理解你的第二个问题

// this is ASCII BS (backspace)
let cBS: Int8 = 0x08
let asciitxt: [Int8] = [65,66,67,cBS,68,0]
let asString = String.fromCString(asciitxt)
print(asciitxt)
print(asString)
print(asString!)

/*
[65, 66, 67, 8, 68, 0]
Optional("ABC\u{08}D")
ABCD
*/

你的第一个问题的答案只是关于你解析代码中的逻辑......它根本不是很 swift

关于Swift change String with range & and shouldChangeTextInRange 如何知道退格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33773603/

相关文章:

ios - 如何在 iOS 中使用 Swift 实现自定义 UICollectionViewCell

ios - 从绿色到红色的颜色百分比

android - 在 WebView 而不是默认浏览器中打开 URL

android - 在 Android 中的 TextView 下方绘制下划线

swift - 用于递增和递减循环的新 Swift for-in 语法

swift - 如何以编程方式在按钮和标签之间添加垂直对齐方式

swift - 在 Swift 中将 NSData 转换为 NSAttributedString

java - 如何使 TextView 变粗?

file-upload - 谷歌驱动器 + Alamofire : Uploading a file with properties

swift2 - 如何避免在 Swift2 中嵌套 do/catch 语句