ios - 在 NSStrings 中自动保存
<p><p>我有三个文本字段:名字、姓氏和年龄,还有一张照片。我该怎么做才能让信息自动保存,这样我就不必点击按钮了?</p>
<p>这是我的 <code>ViewController.h</code>:</p>
<pre><code>#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
</code></pre>
<p>这是我的 <code>ViewController.m</code>:</p>
<pre><code>- (void)viewDidLoad {
;
NSUserDefaults *defaults = ;
NSString *frontName = ;
NSString *lastName = ;
int age = ;
NSString *ageString = ;
NSData *imageData = ;
UIImage *contactImage = ;
firstNameTextField.text = frontName;
lastNameTextField.text = lastName;
ageTextField.text = ageString;
contactImageView.image = contactImage;
}
- (void)viewDidUnload {
;
contactImageView = nil;
;
firstNameTextField = nil;
;
lastNameTextField = nil;
;
ageTextField = nil;
;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)save:(id)sender{
;
;
;
// Create strings and integer to store the text info
NSString *frontName = ;
NSString *lastName = ;
int age = [ integerValue];
UIImage *contactImage = contactImageView.image;
NSData *imageData = UIImageJPEGRepresentation(contactImage, 100);
NSUserDefaults *defaults = ;
;
;
;
;
;
NSLog(@"Data saved");
}
- (IBAction)chooseImage:(id)sender {
UIImagePickerController *picker = [[ init] autorelease];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
;
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
contactImageView.image = image;
;
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
;
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您必须使用 <code><UITextFieldDelegate></code> 协议(protocol)</p>
<p>引用:<a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html" rel="noreferrer noopener nofollow">UITextFieldDelegate Protocol</a> </p>
<p>你必须设置</p>
<pre><code>textField.delegate = yourViewController
</code></pre>
<p>然后可以使用协议(protocol)函数来处理 TextView 的输入和字符更改。</p>
<p>例如你可以使用</p>
<pre><code>- (BOOL)textFieldShouldReturn:(UITextField *)textField
</code></pre>
<p>在用户按下返回按钮时保存文本字段内容 =)</p>
<p>编辑:可能这种方法更适合您的需求 - 我昨天写帖子时有点累=)</p>
<pre><code>- (void)textFieldDidEndEditing:(UITextField *)textField {
//save your textfied.text string here :)
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 在 NSStrings 中自动保存,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/10032088/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/10032088/
</a>
</p>
页:
[1]