2016-07-04 13 views
1

entließ die folgenden Zeilen in meinem Code ich habe:Schaltfläche Abbrechen verschwindet nach UISearchBar Tastatur

func searchBarTextDidBeginEditing(searchBar: UISearchBar) { 
    searchBar.showsCancelButton = true 
} 

func searchBarSearchButtonClicked(searchBar: UISearchBar) { 
    searchBar.resignFirstResponder() 
} 

Wenn ich die search tippen, wird die Tastatur des Feldes verwiesen und die Löschtaste verschwindet.

Was ist die Lösung?

+0

was ist dein Zweck? – childrenOurFuture

+0

Ich denke, dass Ihre Einschränkungen durcheinander sind. Oder liege ich falsch? –

+0

@childrenOurFuture Wenn der Benutzer mit der Suche beginnt, wird die Navigationsleiste ausgeblendet und die Schaltfläche Abbrechen wird angezeigt. Die Navigationsleiste wird immer ausgeblendet, bis der Benutzer auf die Abbrechen-Schaltfläche klickt. – Mohammed

Antwort

0

Gelöst!

Ich habe das Problem gelöst, indem ich neben der UISearchBar UIButton [cancelButton] hinzugefügt habe, und fügt die Width Constraint als @IBOutlet hinzu. Jetzt, anstatt den cancelButton der searchBar anzuzeigen, ändere ich die Breite des cancelButtons wie folgt anzuzeigen oder auszublenden:

func searchBarTextDidBeginEditing(searchBar: UISearchBar) { 
    UIView.animateWithDuration(0.25) { 
     self.widthConstraint.constant = 44.0 
     self.cancelButton.layoutIfNeeded() 
    } 
} 

@IBAction func cancelButtonTapped(sender: UIButton) { 
    UIView.animateWithDuration(0.25) { 
     self.widthConstraint.constant = 0.0 
     self.cancelButton.layoutIfNeeded() 
    } 
}