2017-08-02 1 views
0

Ich habe zwei UITextFields und numerische Tastatur UIButton auf demselben Formular. Ich möchte nicht, dass Benutzer die Standardtastatur verwenden, sondern meine UIB-Taste verwenden, um den Wert einzugeben. Aber jedes Mal, wenn ich auf das Textfeld klicke, erscheint die Standardtastatur.Swift 3 Tastatur auf UITextField deaktivieren oder ausblenden

Ich habe versucht, die isUserInteractionEnabled auf false zu setzen, die Tastatur wurde nicht angezeigt, aber die Aktionswählerfunktion hat das Touchdown-Ereignis nicht ausgelöst, deshalb konnte ich die aktuelle UITextField-Hintergrundfarbe nicht ändern.

Bitte helfen Sie !!!

+0

isUserInteractionEnabled für UITextField falsch ist und Aufsetzen auf UIButton nimmt bin ich rightt? –

+0

Ich möchte, dass das Touchdown-Ereignis die Auswahlfunktion auf UITextField auslöst, aber wenn isUserInteractionEnabled auf false gesetzt ist, wurde die Touchdown-Funktion nicht ausgelöst. –

+0

Sie sollten isUserInteractionEnabled aktivieren und dann nur auf Works tippen. Und in Touch down füge bitte self.view.endEditing (true) hinzu –

Antwort

0

Set isUserInteractionEnabled für UITextField wahr und

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

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

Sie können auch ResignFirstResponder() versuchen, machen Tastatur zu verstecken.

+0

Ich kann den Hintergrund nicht ändern, aber wenn ich von TouchUpInside zu TouchDown ändere, wird der Code unter endEditing (true) ausgeführt, aber die Tastatur wird weiterhin angezeigt –

0

diesen Code Versuchen für Swift 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() 
    } 
} 
Verwandte Themen