2016-07-17 22 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

Ok、touchesBegan機能 - スーパービューにサブビューを追加して追加するのは悪い場所です。 y回。
textViewのインスタンスが2つ以上あり、すべての新しいインスタンスが前のインスタンスをオーバーレイすると思います。私が提案することができますどのような

は - ちょうどそれを表示 - あなたのtextView、およびタッチのイベントを非表示にし、initまたはviewDidLoadなどの機能にtextView初期化およびレイアウトコードを交換することです。

+0

UITextView以上のものがあります。したがって、viewDidLoadで作成した場合、ロードする回数はわかりません。 – user979331

+0

ああ、持っています、あなたは> textViewです。 –

関連する問題