2012年5月30日 星期三

Text View

目的:輸入文字時,復原及儲存功能,如下圖
 Step 1.View加入"Text View","Navigation Bar"及二個"Bar Button Item",如下圖

Step 2.ViewController.h
@interface ViewController : UIViewController<UITextViewDelegate>
{
    IBOutlet UITextView *content; //文章內容
    IBOutlet UIBarButtonItem *undo; //復原
    IBOutlet UIBarButtonItem *done; //完成
    NSString *preText; //記錄文字內容
}

//加入property
@property (nonatomic, retain) IBOutlet UITextView *content;

//復原及完成方法
-(IBAction)onUndo:(id)sender;
-(IBAction)onDone:(id)sender;

Step 3.拖拉View上的關聯,如下
點選Text View,拖拉代理給View Controller

Step 4.ViewController.m
@synthesize content;

//完成
-(IBAction)onDone:(id)sender{
    //關閉鍵盤
    [content resignFirstResponder];
}
//復原
-(IBAction)onUndo:(id)sender{
    [content setText:preText];
}
//點選編輯時
-(void)textViewDidBeginEditing:(UITextView *)textView {
    preText = [content text]; //先暫存
    NSLog(@"111111");
}
//結束編輯
-(void)textViewDidEndEditing:(UITextView *)textView {
    [undo setEnabled:NO];
    [done setEnabled:NO];
}
//輸入文字
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    [undo setEnabled:YES];
    [done setEnabled:YES];
    return YES;
}
//畫面載入時
- (void)viewDidLoad
{
    [super viewDidLoad];
    //預設enabel
    [undo setEnabled:NO];
    [done setEnabled:NO];
 }