輸入!文字框 UITextField

輸入!文字框 UITextField

UITextField 繼承UIControl後具備互動輸入,它是一個具有可編輯內容的文字框,並且帶有許多事件可以在輸入與按下鍵盤Return(輸入)後處理文字內容。

執行結果

Log

textFieldDidBeginEditing:哈囉!Swift!!
textFieldShouldEndEditing:哈囉!Swift!!
textFieldDidEndEditing:哈囉!Swift!!
按下Return

Swift 程式範例

//-----------start-----------
//
//  ViewController.swift
//
//

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // UITextField初始化
        let dyTextField: UITextField = UITextField(frame: CGRectMake(40,50,200,30))

        // 設定預設文字內容
        dyTextField.text = "哈囉!Swift!!"

        // 設定文字顏色
        dyTextField.textColor = UIColor.whiteColor()

        // Delegate
        dyTextField.delegate = self

        // 設定輸入框背景顏色
        dyTextField.backgroundColor = UIColor.brownColor()

        // 框線樣式
        dyTextField.borderStyle = UITextBorderStyle.RoundedRect

        // 將TextField加入View
        self.view.addSubview(dyTextField)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    // 設定delegate 為self後,可以自行增加delegate protocol
    // 開始進入編輯狀態
    func textFieldDidBeginEditing(textField: UITextField){
        println("textFieldDidBeginEditing:" + textField.text)
    }

    // 可能進入結束編輯狀態
    func textFieldShouldEndEditing(textField: UITextField) -> Bool {
        println("textFieldShouldEndEditing:" + textField.text)

        return true
    }

    // 結束編輯狀態(意指完成輸入或離開焦點)
    func textFieldDidEndEditing(textField: UITextField) {
        println("textFieldDidEndEditing:" + textField.text)
    }

    // 按下Return後會反應的事件
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        //利用此方式讓按下Return後會Toogle 鍵盤讓它消失
        textField.resignFirstResponder()
        println("按下Return")
        return false
    }

}

//------------end------------

Objective-C 程式範例

標頭檔

//-----------start-----------
//
//  ViewController.h
//
//
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UITextFieldDelegate>


@end
//------------end------------

程式檔

//-----------start-----------
//
//  ViewController.m
//
//
//

#import "ViewController.h"
#import <UIKit/UIKit.h>


@interface ViewController ()

@end

@implementation ViewController


- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    // UITextField初始化
    UITextField *dyTextField = [[UITextField alloc] initWithFrame:CGRectMake(40,50,200,30)];

    // 設定預設文字內容
    dyTextField.text = @"哈囉!Swift!!";

    // 設定文字顏色
    dyTextField.textColor = [UIColor whiteColor];

    // Delegate
    dyTextField.delegate = self;

    // 設定輸入框背景顏色
    dyTextField.backgroundColor = [UIColor brownColor];

    // 框線樣式
    dyTextField.borderStyle =  UITextBorderStyleRoundedRect;

    // 將TextField加入View
    [self.view addSubview:dyTextField];


}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

// 設定delegate 為self後,可以自行增加delegate protocol
// 開始進入編輯狀態
- (void) textFieldDidBeginEditing:(UITextField*)textField {
    NSLog(@"textFieldDidBeginEditing:%@",textField.text);
}

// 可能進入結束編輯狀態
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    NSLog(@"textFieldShouldEndEditing:%@",textField.text);
    return true;
}

// 結束編輯狀態(意指完成輸入或離開焦點)
- (void)textFieldDidEndEditing:(UITextField *)textField {
    NSLog(@"textFieldDidEndEditing:%@",textField.text);
}

// 按下Return後會反應的事件
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    //利用此方式讓按下Return後會Toogle 鍵盤讓它消失
    [textField resignFirstResponder];
    NSLog(@"按下Return");
    return false;
}


@end

//------------end------------

參考資料

UITextField Class