21209


UITextView のキャレットの開始位置を左上に持ってくることが目的です。

前提として言語は swift(ver 1.2)、Xcode 6.4、ターゲットはiOS 8.4です。  
storyboard では画面遷移のみを定義し、xib にビューの定義（各コントロールの配置等）をして開発をしております。

UITextView を storyboard ではなく、コードもしくは xib
で定義をするとキャレットの開始位置が左上ではなく、中途半端な位置に固定されてしまいます。

以下は UITextView を生成した際のコードです。

[code]

    class hogeViewController: UIViewController, 
          UITableViewDelegate, 
          UITableViewDataSource{ 
    
          var myTextView = UITextView()
    
          override func viewDidLoad() { 
    
    
              myTextView.frame = CGRectMake(10, 80, 300,80)
              myTextView.layer.masksToBounds = true
              myTextView.layer.cornerRadius = 10.0
              myTextView.layer.borderWidth = 1
              myTextView.layer.borderColor = UIColor.grayColor().CGColor
              myTextView.textAlignment = NSTextAlignment.Left
    
              self.view.addSubview(myTextView)
          }
    }
    
[/code]

この事象の対処法またはコードの不備等ございましたらご指摘いただきたいです。  
よろしくお願い致します

[![画像の説明をここに入力](https://i.stack.imgur.com/Z53O6.png)](https://i.stack.imgur.com/Z53O6.png)


CC BY-SA 3.0
2016-01-21T15:48:16.097
21155
2016-01-24T07:59:38.867
2016-01-23T11:22:38.647
14092
14092
question
swift
UITextView をコードで生成するとキャレットの開始位置が左上とならない


Navigation Barの高さ分、Scroll
Viewのコンテンツがインセットされるようです。`UITextView`も`UIScrollView`のサブクラスです。  
_Storyboardで設置したScroll Viewでもインセットされます。_  
**View Controller** のAttributes Inspectorで、「Adjust Scroll View
Insets」のチェックを外すと、Navigation Barの高さ分のインセットが、無効になります。

[![画像の説明をここに入力](https://i.stack.imgur.com/Sk8ne.png)](https://i.stack.imgur.com/Sk8ne.png)

Storyboardでなく、コードで設定するならば、

[code]

    self.automaticallyAdjustsScrollViewInsets = false
    // selfは、View Controllerのこと。
    
[/code]

を、`viewDidLoad()`に加えるといいでしょう。


CC BY-SA 3.0
2016-01-23T03:39:50.637
21209
2016-01-24T07:59:38.867
2016-01-24T07:59:38.867
7362
7362
21155
answer