回答編集履歴

3

修正

2016/05/25 00:07

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -49,3 +49,7 @@
49
49
  }
50
50
 
51
51
  ```
52
+
53
+
54
+
55
+ [1]→[2]の時先頭にこないというのがよくわかりませんが、初期表示なので何もtextViewにしなければ先頭になると思います。

2

修正

2016/05/25 00:07

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,10 +1,6 @@
1
- いくつか試たのすが自分もうまくいきませんでした。
1
+ [2]番目のViewControllerと想定て最低限きました。
2
2
 
3
-
4
-
5
- あまり綺麗な方法では無いですがとりあえず、それっぽくなったので回答しておきます
3
+ してみてください
6
-
7
- ※先頭にキャレット(カーソル)が入ってしまいますが、気にならなければ良いと思います・・・
8
4
 
9
5
 
10
6
 
@@ -14,41 +10,39 @@
14
10
 
15
11
 
16
12
 
17
- class ViewController: UIViewController, UITextViewDelegate {
13
+ class ViewController: UIViewController {
18
14
 
19
15
 
20
16
 
21
17
  @IBOutlet weak var textV: UITextView!
22
18
 
23
- var isShowedFirstKeyboard: Bool = false
19
+ var isDidDisappearFlg: Bool = true
24
20
 
21
+
25
22
 
23
+ override func viewWillAppear(animated: Bool) {
26
24
 
27
- override func viewDidLoad() {
28
-
29
- super.viewDidLoad()
25
+ super.viewWillAppear(animated)
30
26
 
31
27
 
32
28
 
29
+ if isDidDisappearFlg {
30
+
31
+ isDidDisappearFlg = false
32
+
33
+ let top = NSRange(location: 0, length: 0)
34
+
33
- textV.becomeFirstResponder()
35
+ textV.scrollRangeToVisible(top)
36
+
37
+ }
34
38
 
35
39
  }
36
40
 
37
-
41
+
38
42
 
39
- // UITextViewDelegateで処理
43
+ override func viewDidDisappear(animated: Bool) {
40
44
 
41
- func textViewDidBeginEditing(textView: UITextView) {
42
-
43
- if !isShowedFirstKeyboard {
44
-
45
- // 画面表示時1回のみ実行
46
-
47
- textView.selectedRange = NSMakeRange(0, 0)
48
-
49
- isShowedFirstKeyboard = true
45
+ isDidDisappearFlg = true
50
-
51
- }
52
46
 
53
47
  }
54
48
 

1

修正

2016/05/24 13:16

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  @IBOutlet weak var textV: UITextView!
22
22
 
23
- var isViewDidAppeared: Bool = false
23
+ var isShowedFirstKeyboard: Bool = false
24
24
 
25
25
 
26
26
 
@@ -34,27 +34,19 @@
34
34
 
35
35
  }
36
36
 
37
-
37
+
38
38
 
39
- override func viewDidAppear(animated: Bool) {
40
-
41
- super.viewDidAppear(animated)
42
-
43
-
44
-
45
- isViewDidAppeared = true
46
-
47
- }
48
-
49
-
50
-
51
- // UITextViewのDelegateで処理をしています。
39
+ // UITextViewのDelegateで処理
52
40
 
53
41
  func textViewDidBeginEditing(textView: UITextView) {
54
42
 
55
- if !isViewDidAppeared {
43
+ if !isShowedFirstKeyboard {
44
+
45
+ // 画面表示時1回のみ実行
56
46
 
57
47
  textView.selectedRange = NSMakeRange(0, 0)
48
+
49
+ isShowedFirstKeyboard = true
58
50
 
59
51
  }
60
52