相关疑难解决方法(0)

格式化UITextField文本而不将光标移动到最后

我试图在处理新的文本条目后,通过按键击键,将NSAttributedString样式应用于UITextField.问题是,每当我替换文本时,光标将在每次更改时跳到最后.这是我目前的做法......

立即接收并显示文本更改(当我返回false时同样的问题适用并手动执行文本替换)

func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool {        
    let range:NSRange = NSRange(location: range.location, length: range.length)
    let newString = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string);
    return true
}
Run Code Online (Sandbox Code Playgroud)

我订阅了UITextFieldTextDidChangeNotification通知.这会触发样式.当文本被更改时,我使用一些format()函数将其替换为格式化版本(NSAttributedString)(NSString).

func textFieldTextDidChangeNotification(userInfo:NSDictionary) {
    var attributedString:NSMutableAttributedString = NSMutableAttributedString(string: fullString)
    attributedString = format(textField.text) as NSMutableAttributedString
    textField.attributedText = attributedString
}
Run Code Online (Sandbox Code Playgroud)

造型效果很好.但是,在每次文本替换后,光标会跳转到字符串的末尾.如何关闭此行为或手动将光标移回到开始编辑的位置?...或者在编辑时是否有更好的解决方案来设置文本样式?

uitextfield ios uitextfielddelegate swift

27
推荐指数
3
解决办法
1万
查看次数

使用RxSwift观察UITextField.editing

我想观察房产UITextfield.editing.我正在使用此代码:

self.money.rx_observe(Bool.self, "editing").subscribeNext { (value) in
    print("")
}.addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)

但是在运行过程中,它只执行一次.请问我该如何解决这个问题

ios swift rx-swift reactivex rx-cocoa

17
推荐指数
2
解决办法
2万
查看次数