2013-02-05 24 views
5

私はUITextFieldを持っていますが、フォーカスされているときとフォーカスされていないときをコントロールしたいと思います。UITextFieldのタッチ操作は無効にしますが、すべてのユーザー操作は無効にします

これを達成するには、そのテキストフィールドでタッチイベントをブロックできる必要があります。私はそれの前にボタンを置いて手動で行うことができますが、要素のタッチを無効にする方法があるかどうかを知りたかったのです。

多くのありがとうございます。

答えて

13

UITextFieldのプロパティでタッチをブロックする方法はありません。私はタッチをブロックするために、テキストフィールドの上にUIViewを配置することでこの問題を解決しました。属性インスペクタを使用してUIViewを「Clear Color」に設定しました。私のアプリケーションに適しています。

1

userInteractionEnabledのプロパティはどうですか?

+1

でそれを設定し設定)(becomeFirstResponder前にして、編集中のカーソルの相互作用を持っている持っていたI必要。私はタッチを止めたいだけです。 **すべての**対話ではありません。 :) –

+0

私は理解していません...タッチを無効にすると、ユーザーはそれをタッチしてキーボードを持ち出すことができませんので、違いは何ですか? – borrrden

+0

しかし、私は手動で 'becomeFirstResponder'を呼び出してキーボードを持ち出すことができます。 :) –

0

私は私がisUserInteractionEnabled =真とエンド編集には、キーボードを介して入力したテキストからあなたを停止する偽

@IBAction func editTapped(_ sender: UIButton) { 
    textField.isUserInteractionEnabled = true 
    textField.becomeFirstResponder() 
} 


func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { 
    print(textField.textValue) 

    textField.isUserInteractionEnabled = false 

    return true 
} 
関連する問題