`

UITextField处理每次输入值

 
阅读更多
需求描述:每次UITextField输入字符,都将数值存入某个制定的字典里
问题描述:
用UITextField 自带的代理方法 (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 中string为输入的字符,所以要存入字典的最终值为
NSString *inStr = [textField.text stringByAppendingString:string];
但是,如果是中文拼音输入法,要输入“啊” 先后进入代理方法两次
分别是:
      (1)string==@"a"
      (2)string==@"啊"  
      ===> 结果存入到字典中的值为@"a啊"

解决方法:
1.从保存时机上处理
    (1)在(void)textFieldDidBeginEditing:(UITextField *)textField时存储
    (2)在 viewWillDisappear 时存储
    (3)自定义 方法 textFieldEditingChanged:(id)sender 同时将 UITextFiled的Editing changed 事件(nib 右键  事件里的第二个)指向此方法

/////////////////缺点///////////////////
1.  (1)(2) 如果出现在如下情景下:UITextField处于编辑状态,但是进行了 viewController.view.hidden = YES  (页面切换常用的方法之一)  便无法进行保存
分享到:
评论

相关推荐

    iOS中监听UITextField值改变事件的方法实例

    这样,每次文本字段的值发生变化时,都会触发指定的处理方法。这种方法的好处在于更加灵活,可以为多个UITextField设置不同的处理方法,或者让它们共享一个处理方法,并在方法内部通过发送者识别不同文本字段。 在...

    iOS UITextField、UITextView只限输入中文、英文、数字及实时限制字符个数的封装实现代码

    在iOS开发中,`UITextField` 和 `UITextView` 是用于用户输入文本的两种常见控件。在某些场景下,我们可能需要对用户的输入进行限制,比如仅允许输入中文、英文和数字,并且实时限制输入的字符数量。这篇文档将详细...

    IOS中UITextView或UITextField字数限制的实现

    每次文本改变时,我们都检查总长度,若超过最大值则截断。 ```swift func textViewDidChange(_ textView: UITextView) { if textView.text.count > MaxCharacterNumber { textView.text = textView.text!....

    ios-一句代码限制文本输入字数.zip

    在实际项目中,我们还需要考虑一些额外的情况,比如当用户复制粘贴大量文字时,如何正确处理超出字数限制的部分,或者在用户删除文字时如何恢复输入能力等。这些都是在实现“一句代码限制文本输入字数”功能时可能...

    到计时器---可以手动输入一个时间,开始倒计时

    本项目“到计时器”是一个用户可以自定义时间的倒计时工具,其核心在于能够接收用户输入并确保输入值仅限于数字。下面我们将详细探讨实现这一功能所需的关键知识点。 1. **用户界面设计**:首先,我们需要设计一个...

    swift-SimpleTextFormetter简单文本格式信用卡号电话号码序列号等

    4. **恢复原始值**:如果需要获取未格式化的原始输入值,`SimpleTextFormatter`也提供了相应的功能,这在处理数据提交或者保存时非常有用。 5. **集成到UI**:在iOS应用中,我们可以将`SimpleTextFormatter`与`...

    swift-Interstellar轻量级FunctionalReactiveProgramming库

    例如,在iOS应用中,你可以用Interstellar监听用户在文本框(UITextField)中的输入,每当输入发生变化时,更新一个视图组件的显示: ```swift let textInput = textField.rac_textSignal() let updateView = text...

    bind和drive绑定到控件上.zip

    对于系统控件,例如UITextField,你可以使用`textField.rx.text`来创建一个Observable,监听用户输入。然后,使用`bind(to:)`方法将其绑定到另一个UITextField的`text`属性,实现两个输入框之间的实时同步。 对于...

    ios 圆环倒计时的demo

    这通常包括一个`UITextField`让用户输入时间,然后通过`Int`或者`TimeInterval`类型来存储这个值。在接收到用户输入后,我们可以启动定时器并传入这个时间,以便进行倒计时。 在实际的代码实现中,可能会有一个`...

    ReactiveCocoa-OC版

    例如,你可以将一个`UITextField`的文本属性与模型中的某个属性绑定,当用户输入时,模型的属性会自动更新,反之亦然。这极大地简化了数据模型和界面之间的同步。 3. **操作符(Operators)** ReactiveCocoa引入了...

    Income Tax

    为了提供良好的用户体验,程序还需要处理可能的输入错误,例如无效的数字输入或者超出合理范围的值。这可以通过`NSPredicate`进行数据验证,或在计算过程中添加条件判断。如果出现错误,应显示相应的错误提示。 8. ...

    CalculatoriOSApp

    1. **操作数管理**:维护两个操作数,一个用于存储当前输入值,另一个用于存储前一次操作的值。 2. **运算符栈**:实现一个栈来存储运算符,用于处理优先级问题。 3. **计算方法**:定义函数处理加减乘除以及括号等...

    iOS(Swift)——三级列表城市选择器(可以是N级列表)

    确保设置好选择器的frame,并将其作为输入视图(inputView)附加到一个uitextfield上,以实现类似淘宝选择器的交互效果。 7. **结果处理**:最后,当用户完成选择后,可以通过`pickerView(_:selectedRowInComponent...

    呈现表单时如何滚动UITableView

    // 处理用户选择某个表单字段,例如高亮或显示输入键盘 // ... } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { // 在这里你可以处理滚动事件,比如调整顶部工具栏的透明度 // ... } ``` 4. **...

    ios开发记录

    //因为tag为999的本来就是UITextField类型所以可以强制转换成UITextField类型,如果他本来就不是UITextField,非要强转语法不会报错,但运行时就会出现问题(例如披着羊皮的郎) // UITextField *tf=(UITextField *...

Global site tag (gtag.js) - Google Analytics