gpt4 book ai didi

ios - 在 NSStrings 中自动保存

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:36 24 4
gpt4 key购买 nike

我有三个文本字段:名字、姓氏和年龄,还有一张照片。我该怎么做才能自动保存信息,这样我就不必单击按钮了?

这是我的ViewController.h:

#import <UIKit/UIKit.h>

@interface ContactViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> {

IBOutlet UIImageView *contactImageView;
IBOutlet UITextField *firstNameTextField;
IBOutlet UITextField *lastNameTextField;
IBOutlet UITextField *ageTextField;
}

- (IBAction)save:(id)sender;
- (IBAction)chooseImage:(id)sender;

@end

这是我的ViewController.m:

- (void)viewDidLoad {
[super viewDidLoad];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *frontName = [defaults objectForKey:@"firstname"];
NSString *lastName = [defaults objectForKey:@"lastname"];

int age = [defaults integerForKey:@"age"];
NSString *ageString = [NSString stringWithFormat:@"%i",age];

NSData *imageData = [defaults dataForKey:@"image"];
UIImage *contactImage = [UIImage imageWithData:imageData];

firstNameTextField.text = frontName;
lastNameTextField.text = lastName;
ageTextField.text = ageString;
contactImageView.image = contactImage;
}


- (void)viewDidUnload {

[contactImageView release];
contactImageView = nil;
[firstNameTextField release];
firstNameTextField = nil;
[lastNameTextField release];
lastNameTextField = nil;
[ageTextField release];
ageTextField = nil;
[super viewDidUnload];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (IBAction)save:(id)sender {
[firstNameTextField resignFirstResponder];
[lastNameTextField resignFirstResponder];
[ageTextField resignFirstResponder];

// Create strings and integer to store the text info
NSString *frontName = [firstNameTextField text];
NSString *lastName = [lastNameTextField text];
int age = [[ageTextField text] integerValue];

UIImage *contactImage = contactImageView.image;
NSData *imageData = UIImageJPEGRepresentation(contactImage, 100);


NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject:frontName forKey:@"firstname"];
[defaults setObject:lastName forKey:@"lastname"];
[defaults setInteger:age forKey:@"age"];
[defaults setObject:imageData forKey:@"image"];

[defaults synchronize];

NSLog(@"Data saved");
}

- (IBAction)chooseImage:(id)sender {
UIImagePickerController *picker = [[[UIImagePickerController alloc] init] autorelease];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:YES];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
contactImageView.image = image;

[picker dismissModalViewControllerAnimated:YES];
}


- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

[picker dismissModalViewControllerAnimated:YES];

}

最佳答案

您将不得不使用 <UITextFieldDelegate>协议(protocol)

引用:UITextFieldDelegate Protocol

你必须设置

textField.delegate = yourViewController

然后可以使用处理 TextView 的输入和字符更改的协议(protocol)函数。

例如你可以使用

- (BOOL)textFieldShouldReturn:(UITextField *)textField

当用户按下返回按钮时保存文本框内容 =)

编辑:可能这种方法更适合您的需求——我昨天写这篇文章时有点累 =)

- (void)textFieldDidEndEditing:(UITextField *)textField {
//save your textfied.text string here :)
}

关于ios - 在 NSStrings 中自动保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10032088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com