blog

プログラミングとひとりごと。

アクティブなtextviewを取得する[swift4]

 

  • 画面上にtextviewが1つだけの場合

キーボードが表示された時、textviewと重なってしまう場合は

textviewをキーボードより上の位置に表示する。

 

その後、

textview以外のところをタップしたらキーボードを非表示にする。

と同時に移動したtextviewを元の位置に戻す。

 

→これは割と簡単にできた。前の記事を参考にして、

最初にy座標を覚えておいて、代入することで元の位置に戻せた。

 

 

  • 画面上にtextviewが2つ以上ある場合

上と同じように処理をしたいが、アクティブなtextviewに対してのみ、

動作するようにしたい。

 

→これは手こずった。

アクティブなテキストビューをどうやって取得すればいいのか???

 

 

 

kimagureneet.hatenablog.com

 

class ViewController: UITextFieldDelegate, UITextViewDelegate {

var activeTextView: UITextView?
    // UITextViewが選択された場合
    func textViewShouldBeginEditing(textView: UITextView) -> Bool {
        self.activeTextView = textView
      
        return true
    }

 

これを参考にして

activeTextViewにアクティブなテキストビューが入っているので

それをif文でどのtextviewなのか判定したらうまくいった。

 

 

 

うまくいったよ!!!