2017-08-02 11 views
0

同じフォームに2つのUITextFieldと数字キーボードUIButtonがあります。ユーザーがデフォルトのキーボードを使用するのではなく、UIButtonを使用して値を入力するようにします。しかし、textFieldをクリックするたびに、デフォルトのキーボードが現れます。Swift 3 UITextFieldでキーボードを無効または非表示にする

isUserInteractionEnabledをfalseに設定しようとしましたが、キーボードが表示されませんでしたが、アクションセレクタ関数がタッチダウンイベントをトリガしなかったため、現在のUITextFieldバックグラウンドカラーを変更できませんでした。

助けてください!

+0

isUserInteractionEnabledはUITextFieldのタッチダウンのために偽であるがUIbuttonに取っているため、このコードを試してみてください、私はrighttのですか? –

+0

私はUITextFieldのセレクタ機能をタッチダウンイベントトリガしたいですが、isUserInteractionEnabledがfalseの場合、タッチダウンはトリガされませんでした –

+0

isUserInteractionEnabledを有効にしてから、タップしてください。タッチダウンして、iphoneにself.view.endEditing(true) –

答えて

0

設定するUITextFieldのための真のisUserInteractionEnabledと

settings.addTarget(self, action: #selector(touched), for: .touchUp) 

func touched(sender: UIButton!) { 
    self.view.endEditing(true) 
    // change background here 
    } 

ます。また、()キーボードを非表示にするresignFirstResponderを試すことができます。

+0

背景を変更できませんが、TouchUpInsideからTouchDownに変更すると、endEditing(true)のコードが実行されますが、キーボードはまだ表示されています –

0

スウィフト3.

import UIKit 


class ViewController: UIViewController, UITextFieldDelegate { 

    @IBOutlet weak var myTextField: UITextField! 


    override func viewDidLoad() 
    { 
    self.myTextField.delegate = self 
    } 

    @IBAction func Button2Pressed(_ sender: Any) 
    { 
    self.myTextField.text = "one" 
    } 

    @IBAction func Button1pressed(_ sender: Any) 
    { 
    self.myTextField.text = "two" 
    } 

    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool 
    { 
    return false 
    } 

    override func didReceiveMemoryWarning() 
    { 
    super.didReceiveMemoryWarning() 
    } 
} 
関連する問題