【问题标题】:UITextField to hold/save value as I start typing without having me to hit the "done/save" buttonUITextField 在我开始输入时保持/保存值,而无需我点击“完成/保存”按钮
【发布时间】:2014-07-21 15:33:05
【问题描述】:

我正在寻找一种代码,它允许我在开始输入时让我的文本字段保持/保存值。我面临的问题是,如果我选择退出视图控制器而不按键盘上的完成键,UITextField 将设置为先前存储的值。我希望UITextField 在我开始输入时保留/保存该值,这样即使我退出视图控制器,它也会保留该值。

【问题讨论】:

  • 你尝试了什么?这里没有人会为您编写所有此代码 - 您必须表明您已经付出了一些研究努力。你以前尝试过什么?为什么这不起作用?
  • 当用户离开时以编程方式关闭键盘。
  • 我用过 -(BOOL)textField: (UITextField*)textField shouldChangeCharactersInRange: (NSRange) range replacementString: (NSString *) string
  • 如果您正在退出视图,并且希望文本字段的值保持在您离开之前的状态,那么您需要将文本字段的值存储在某处(用户默认值,数据库。 ..).
  • @Nick 是的先生,我使用用户默认设置电子邮件文本字段,但它进入陷阱,我的执行卡住了,没有失败大声笑

标签: ios objective-c ipad ios7


【解决方案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{
    

    每次在字段中输入文本时都会运行此函数。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 2021-10-02
      相关资源
      最近更新 更多