Date Picker nesnesini kullanmak için, basit bir örnek üzerinden gideceğiz. Basit bir kullanıcı kayıt formuna
- İsim
- Soyisim
- Doğum Tarihi
bilgilerini girelim ve bu değerleri ekrana yazdıralım.
Önce bir single view proje açıyoruz,
Daha sonra projemize ismini veriyoruz. Ben ismini DatePicker olarak veriyorum.
Ekrana şekildeki nesneleri ekleyip, gösterdiğim şekilde tanımlıyorum.
Yapmak istediğim şey, TextField lara yazılan isim soyismi alıp üstteki label’a yazdırıp, alltaki DatePicker’ın tarihini de 2. label’a yazdırmak.
Bunları yaparken dikkat etmemiz gereken bir nokta var. Kullanıcı adını TextField’a yazarken ekrana gelen klavye, kullanıcı işini bitirdiğinde ekrandan gitsin ki “Kayıt” butonu ve DatePicker ekranda görülebilsin. Bunu yapmazsak klavyenin altında kalırlar ve kullanılamazlar.
Kodlarımız
.h dosyası
// // ViewController.h // DatePicker // // Created by Muhammed on 8.05.2014. // Copyright (c) 2014 Muhammed. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UILabel *lblInfo1; @property (weak, nonatomic) IBOutlet UILabel *lblInfo2; @property (weak, nonatomic) IBOutlet UITextField *txtName; @property (weak, nonatomic) IBOutlet UITextField *txtSurname; @property (weak, nonatomic) IBOutlet UIDatePicker *datePick; - (IBAction)btnSave:(id)sender; @end
.m dosyası
// // ViewController.m // DatePicker // // Created by Muhammed on 8.05.2014. // Copyright (c) 2014 Muhammed. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. _txtName.delegate=self; _txtSurname.delegate=self; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)btnSave:(id)sender { _lblInfo1.text=[_txtName.text stringByAppendingString:_txtSurname.text]; NSDate *date = _datePick.date; _lblInfo2.text = [date description]; [_lblInfo1 resignFirstResponder]; [_lblInfo2 resignFirstResponder]; } - (BOOL)textFieldShouldReturn:(UITextField *)textField { if (textField == _txtName || textField==_txtSurname) { [textField resignFirstResponder]; } else if (textField == _txtSurname) { [_txtSurname resignFirstResponder]; } return NO; } @end
viewDidLoad’da TextField delegatelerimizin class içinde olduğunu tanımladık.
btnSave metodunda yani butona tıklandığında yapılacak olan aksiyonda;
_lblInfo1 e kullanıcının girmiş olduğu isim ve soyisimi yazdırdık.
Date tipinde bir nesne oluşturup, DatePicker’ımızın değerini bu nesneye atadık.
Daha sonra da bunu _lblInfo2’ye yazdırdık.
textFielShouldReturn metodunun içindeki kod ise, kullanıcı Bitti butonuna bastığı zaman klavyenin ekrandan kaybolmasını sağlıyor.
Bitmiş örneğimizin ekran görüntüsü:
Uygulama dosyaları için : https://github.com/ozdemirmuhammed/DatePicker
[…] 5. Date Picker […]