teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

shuusei

2020/04/20 11:40

投稿

Daisuke0315
Daisuke0315

スコア23

title CHANGED
File without changes
body CHANGED
@@ -11,9 +11,9 @@
11
11
 
12
12
  教えていただきたいこと
13
13
  ①同じビュー内に違う値を持つPickerViewを2つ表示する方法
14
- ②曜日を日本語で表示する方法 (Mon)ではなく(月)で
15
14
 
16
15
 
16
+
17
17
  ```swift
18
18
  import UIKit
19
19
  class testViewController: UIViewController, UITextFieldDelegate{

1

追記

2020/04/20 11:39

投稿

Daisuke0315
Daisuke0315

スコア23

title CHANGED
File without changes
body CHANGED
@@ -73,4 +73,77 @@
73
73
  }
74
74
  }
75
75
 
76
+ ```
77
+
78
+ 追記です。
79
+ ```swift
80
+
81
+
82
+ import UIKit
83
+ class testViewController: UIViewController, UITextFieldDelegate{
84
+
85
+ var toolBar:UIToolbar!
86
+
87
+
88
+ @IBOutlet weak var wakeTimeTextField: UITextField!
89
+
90
+ @IBOutlet weak var textfield2: UITextField!
91
+ override func viewDidLoad() {
92
+ super.viewDidLoad()
93
+
94
+ wakeTimeTextField.tag = 1
95
+ wakeTimeTextField.delegate = self
96
+ setupToolbar()
97
+
98
+ textfield2.tag = 2
99
+ textfield2.delegate = self
100
+ }
101
+ func setupToolbar() {
102
+ //datepicker上のtoolbarのdoneボタン
103
+ toolBar = UIToolbar()
104
+ toolBar.sizeToFit()
105
+ let toolBarBtn = UIBarButtonItem(title: "DONE", style: .plain, target: self, action: #selector(doneBtn))
106
+ toolBar.items = [toolBarBtn]
107
+ wakeTimeTextField.inputAccessoryView = toolBar
108
+ }
109
+
110
+ func textFieldDidBeginEditing(_ textField: UITextField) {
111
+ if wakeTimeTextField.tag == 1{
112
+ let datePickerView:UIDatePicker = UIDatePicker()
113
+
114
+ datePickerView.tag = 1//追加
115
+
116
+ datePickerView.datePickerMode = UIDatePicker.Mode.date
117
+ textField.inputView = datePickerView
118
+ datePickerView.addTarget(self, action: #selector(datePickerValueChanged(sender:)), for: UIControl.Event.valueChanged)}else{
119
+ let datePickerView:UIDatePicker = UIDatePicker()
120
+
121
+ datePickerView.tag = 2//追加
122
+
123
+
124
+ datePickerView.datePickerMode = UIDatePicker.Mode.time
125
+ textField.inputView = datePickerView
126
+ datePickerView.addTarget(self, action: #selector(datePickerValueChanged(sender:)), for: UIControl.Event.valueChanged)}
127
+ }
128
+
129
+ //datepickerが選択されたらtextfieldに表示
130
+ @objc func datePickerValueChanged(sender:UIDatePicker) {
131
+
132
+ if sender.tag == 1{//変更
133
+
134
+ let dateFormatter = DateFormatter()
135
+ dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "yMMMdE", options: 0, locale: Locale(identifier: "ja_JP"))
136
+ wakeTimeTextField.text = dateFormatter.string(from: sender.date)}else
137
+ {
138
+ let dateFormatter = DateFormatter()
139
+ dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "H:mm", options: 0, locale: Locale(identifier: "ja_JP"))
140
+ textfield2.text = dateFormatter.string(from: sender.date)}
141
+ }
142
+
143
+ //toolbarのdoneボタン
144
+ @objc func doneBtn(){
145
+ wakeTimeTextField.resignFirstResponder()
146
+ }
147
+ }
148
+
76
149
  ```