UITextField 在我开始输入时保持/保存值,而无需我点击“完成/保存”按钮
Posted
技术标签:
【中文标题】UITextField 在我开始输入时保持/保存值,而无需我点击“完成/保存”按钮【英文标题】:UITextField to hold/save value as I start typing without having me to hit the "done/save" button 【发布时间】:2014-07-21 15:33:05 【问题描述】:我正在寻找一种代码,它允许我在开始输入时让我的文本字段保持/保存值。我面临的问题是,如果我选择退出视图控制器而不按键盘上的完成键,UITextField
将设置为先前存储的值。我希望UITextField
在我开始输入时保留/保存该值,这样即使我退出视图控制器,它也会保留该值。
【问题讨论】:
你尝试了什么?这里没有人会为您编写所有此代码 - 您必须表明您已经付出了一些研究努力。你以前尝试过什么?为什么这不起作用? 当用户离开时以编程方式关闭键盘。 我用过 -(BOOL)textField: (UITextField*)textField shouldChangeCharactersInRange: (NSRange) range replacementString: (NSString *) string 如果您正在退出视图,并且希望文本字段的值保持在您离开之前的状态,那么您需要将文本字段的值存储在某处(用户默认值,数据库。 ..). @Nick 是的先生,我使用用户默认设置电子邮件文本字段,但它进入陷阱,我的执行卡住了,没有失败大声笑 【参考方案1】:您可以在键入时将 textField 值保存在 NSUserDefault 中。并从中检索。
在 ViewDidLoad 中
-(Void) ViewDidLoad
NSString *textFieldValue = [[NSUserDefaults standardUserDefaults] valueForKey:@"fieldValue"];
myTextField.text = textFieldValue;
myTextField.delegate = self;
//UITextField 委托
- (void)textFieldDidEndEditing:(UITextField *)textField
[NSUserDefaults standardUserDefaults] setValue:myTextField.text forKey:@"fieldValue"];
[[NSUserDefaults standardUserDefaults] synchronize];
【讨论】:
【参考方案2】:我没有专门在 ios 上尝试过这个,但是通过实现NSTextFieldDelegate
,我能够在我正在开发的 Mac 应用中获得类似的功能。
@interface AppDelegate : NSObject <NSApplicationDelegate, NSTextFieldDelegate>
在 AppDelegate.m 内部,我实现了协议的这一部分:
-(void)controlTextDidChange:(NSNotification *)obj
每次在字段中输入文本时都会运行此函数。
希望这会有所帮助。
【讨论】:
以上是关于UITextField 在我开始输入时保持/保存值,而无需我点击“完成/保存”按钮的主要内容,如果未能解决你的问题,请参考以下文章
在输入文本时保持居中的同时动态调整 UITextField 大小的正确方法是啥?