2016-07-17 6 views
1

Я создал класс UITextView и добавляю UITextView прикосновением. Появляется UITextView, однако заданный текст не появляется, и когда я касаюсь UITextView, клавиатура появится, но когда я начну писать текст, она не появится.UITextView не отображает текст

Вот мой UITextView класс:

import UIKit 

class TextAnnotation: UITextView { 

    override init(frame: CGRect, textContainer: NSTextContainer?) { 
     super.init(frame: frame, textContainer: textContainer) 
     self.text = "Text Field" 
     self.textColor = UIColor.blackColor() 
     self.userInteractionEnabled = true 
     self.editable = true 
     self.frame = CGRect(x: frame.origin.x, y: frame.origin.y, width: 200, height: 50) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 
} 

и вот как я называю этот класс, чтобы добавить UITextView на ощупь:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    let textCenter = touches.first!.locationInView(view) 
    let textView = TextAnnotation(frame: CGRect(x: textCenter.x, y: textCenter.y, width: 200, height: 50), textContainer: NSTextContainer()) 

    self.view.addSubview(textView) 
} 

Как получить набор текста появляться и почему не отображается, когда я начинаю вводить

+0

Что делать, если вы задаете значение textView.text вне инициализатора? Например, перед добавлением его в представление? –

+0

вы уверены, что ваш инициализатор называется? –

ответ

1

ОК, touchesBegan Функция - это плохое место для инициализации и добавления subview для просмотра, потому что его можно назвать человеком y раз.
Я думаю, у вас более одного экземпляра textView, и каждый новый экземпляр накладывается на предыдущий.

Что я могу предложить - это заменить textView инициализацию и код макета в init или viewDidLoad и т.д. функции, скрыть textView, и на ощупь событие - просто показать его.

+0

Будет больше, чем UITextView, поэтому, если я создам его в viewDidLoad, я не буду знать, сколько загрузить. – user979331

+0

О, получилось, вам нужно> 1 'textView'. –

Смежные вопросы