fb_license

技術標籤

@selector (1) 初使化區塊 (1) 物件 (1) 物件導向 (2) 型別 (4) 封裝 (1) 流程控制 (1) 陣列 (3) 推論型別 (2) 實機測試 (1) 蓋索林(gasolin) (1) 模組 (1) 憑證 (1) 轉型 (1) 羅康鴻 (121) 類別 (1) 變數 (5) Accelerometer (1) ActiveRecord (1) Activity (1) AFNetworking (1) alloc (1) Android (3) Animation (1) App (1) App ID (1) APP上傳 (1) ASP.NET (1) AVAudioPlayer (1) block (1) C# (2) class (1) CLLocationManager (1) CLLocationManagerDelegate (1) CMMotionManager (4) Controller (1) delegate (1) DELETE語法 (1) Device Motion資料 (1) Dialog (1) DropDownList (1) dynamic language (2) Facebook SDK (9) FBRequest (5) FBRequestConnection (2) FMDB (1) Gesture Recognizers (6) GROUP BY (2) Gyro (1) HAVING (1) IBAction (1) IBOutlet (1) id (3) inheritance (1) init (1) Insert (1) instance variable (1) Interface Builder (1) iOS (70) iOS idea (7) iOS Introduction (1) Layout (1) Magnetometer (1) Menu (2) Method (2) MKMapView (1) MKPointAnnotation (1) MS SQL (5) Nil (1) NSArray (1) NSDictionary (1) NSError (1) NSFileManager & .plist (1) NSMutableArray (1) NSMutableDictionary (1) NSNotificationCenter (1) NULL (1) object (2) Objective-C (16) Objective-C idea (1) ORDER BY (1) Parameter (1) property (1) protocol (2) Provisioning (1) Proximate Sensor (1) Q and A (2) R類別 (1) Rails (9) RESTful SOA (9) Ruby (8) Scene (1) SEELECT (1) Segue (2) SEL (1) SELECT語法 (1) Shake (1) Simulator (1) SOA (8) SQL (6) SQL Server (5) SQL函數 (1) SQL彙總函數 SQL (1) SQLite (1) Storyboard (1) Style (1) Swift (1) Table (1) target & action (1) Theme (1) Toast (1) TRUNCATE TABLE語法 (1) UIActionSheet (1) UIActionSheetDelegate (1) UIActivityIndicatorView (1) UIAlertView (1) UIBarButtonItem (1) UIButton (1) UICollectionView (1) UICollectionViewDataSource (1) UIControl (9) UIDatePicker (1) UIImage (1) UIImagePickerController (2) UIImagePickerControllerDelegate (2) UIImageView (1) UILabel (1) UILongPressGestureRecognizer (1) UINavigationController (2) UIPanGestureRecognizer (1) UIPinchGestureRecognizer (1) UIProgressView (1) UIResponder (1) UIRotationGestureRecognizer (1) UISegmentedControl (1) UISlider (1) UIStepper (1) UISwipeGestureRecognizer (1) UISwitch (1) UITabBarController (1) UITableView (1) UITableViewDataSource (1) UITapGestureRecognizer (1) UITextField (1) UITextFieldDelegate (1) UITextView (2) UITextViewDelegate (1) UIToolBar (1) UIView (8) UIWebView (1) UPDATE語法 (1) var (2) VB.NET (7) View (4) WHERE子句 (1) XML (1)

2013/10/17

[iOS] UITextView & UITextViewDelegate


我是UITextView,我負責輸入多行資料欄位的角色,
讓使用者可以輸入多行的資料


但我需要能夠幫我處理使用者輸入資料的工作,只要符合UITextViewDelegate的protocol協定,都可以接我的工作。



我繼承自UIControl,因此我擁有與使用者互動的基本能力。













第1步:建立一個名為"UIViewField_UITextViewDelegate"的"Single View Application"專案
 

第2步:拖拉UITextView至畫面中


第3步:清除預設於Text屬性中文字




第4步:建立UITextView的IBOutlet物件參考於ViewController中
  • 4.1 對UITextView按右鍵,按任"New Referencing Outlet"右邊的圓點,並拖拉至ViewController類別中


  • 4.2 於"Name"欄位輸入"textView",並按下"Connect"

  • 4.3 確認textView Outlet建立完成




第5步:為"ViewController"加上"UITextViewDelegate" protocol協定,以擁有處理使用者輸入資料的作業,我要處理的是當使用者按下"Return"鍵時,即表示結束輸入的作業。

  • 5.1 為"ViewController"加上"UITextViewDelegate" protocol協定,於UIViewController後方加上"<UITextViewDelegate>"
@interface ViewController : UIViewController <UITextViewDelegate> @end
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { //"\n"即表示Return鍵,當使用者按下Return鍵時, //則透過resignFirstResponder方法結束編輯 if([text isEqualToString:@"\n"]) { [textView resignFirstResponder]; return NO; } return YES; }


第6步:將實作"UITextViewDelegate"的ViewController(self),指派至UITextView的delegate屬性中,好將使用者於UITextView輸入資料的工作委派給ViewController(self)物件。當然,UITextView則會以"UITextViewDelegate"protocol協定將輸入的處理工作交給ViewController。

- (void)viewDidLoad { [super viewDidLoad]; //將實作UITextFieldDelegate的ViewController(self), //指派給UITextFiled的delegate屬性中, //好將使用者對UITextFiled輸入資料的處理工作, //委派給ViewController(self)物件。 self.textView.delegate = self; }



第7步:執行選取UITextView,此時會出現輸入鍵盤,使用者即可透過鍵盤輸入資料,並在按下Return鍵,關閉鍵盤。









檔案連結:UITextView_UITextViewDelegate.zip