2014-08-21 6 views
2

Я создал UITextView программно, но, к сожалению, он не ведет себя так, как это делает textview при перетаскивании его из инспектора атрибутов в Main.storyboard. Например: текст в моем программно созданном текстовом виде не «прерывает линию» в правой части рамки textview. Хотя в документации упоминается textContainerInsets, я не могу заставить его работать. (Xcode не распознает атрибут)Установить вставки программно созданного UITextView

class ViewController: UIViewController, UIScrollViewDelegate { 


let scrollView = UIScrollView(frame: UIScreen.mainScreen().bounds) 
var textView:UITextView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.view = self.scrollView 

    let screenSize: CGRect = UIScreen.mainScreen().bounds 
    let screenWidth = screenSize.width; 
    let screenHeight = screenSize.height;  

    //Create textview 
    let textView : UITextField = UITextField(frame : CGRect(x:10, y:(screenHeight/2), width:  (screenWidth-20), height: (screenHeight/3))) 
    textView.backgroundColor = UIColor(red: 0.9, green: 0.9, blue:0.9, alpha: 1.0) 
    textView.placeholder = NSLocalizedString("Start typing...", comment: "") 
    textView.borderStyle = UITextBorderStyle.Line; 
    // textView.autocorrectionType = .Yes 
    self.view.addSubview(textView) 

} 

Есть ли способ, чтобы сделать текст внутри моего TextView действует как нормальные? несколько строк вместо одной строки?

ответ

2

Вы создаете в своем коде UITextField, а не UITextView.

Это:

let textView : UITextField = UITextField(frame : CGRect(x:10, y:(screenHeight/2), width:(screenWidth-20), height: (screenHeight/3))) 

Должно быть:

let textView : UITextView = UITextView(frame : CGRect(x:10, y:(screenHeight/2), width:  (screenWidth-20), height: (screenHeight/3))) 

Вы также, кажется, объявили textView как свойство в классе, так что ваш, вероятно, не хотят let в там:

textView = UITextView(frame : CGRect(x:10, y:(screenHeight/2), width:  (screenWidth-20), height: (screenHeight/3))) 
+0

Теперь я чувствую себя глупо ... как я мог пропустить это: S Спасибо! – etimm

+1

Это случается со всеми нами :) –

2

Вот как я буду реализовывать ваш UITextView программно -

override func viewDidLoad() { 
    super.viewDidLoad(); 

    self.view.translatesAutoresizingMaskIntoConstraints = false; 

    let screenSize: CGRect = UIScreen.mainScreen().bounds; 
    let screenWidth = screenSize.width; 
    let screenHeight = screenSize.height; 

    //Create textview 
    let textView : UITextView = UITextView(frame : CGRect(x:  10, 
                  y:  (screenHeight/2), 
                  width: (screenWidth-20), 
                  height: (screenHeight/3))); 

    textView.backgroundColor = UIColor(red: 0.9, green: 0.9, blue:0.9, alpha: 1.0); 

    textView.text = NSLocalizedString("Start typing... maybe...", comment: ""); 

    //textView.borderStyle: border's are not supported by the UITextView 

    self.view.addSubview(textView); 

    return; 
}