J'ai une vue de table avec un champ de texte et une vue de texte. J'ai mis ce code comme suggéré par cet exemple de code de pomme https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.htmlTableview fait défiler le contenu lorsque le clavier affiche
@IBOutlet var myTableView: UITableView
func keyboardWasShown (notification: NSNotification)
{
println("keyboard was shown")
var info = notification.userInfo
var keyboardSize = info.objectForKey(UIKeyboardFrameBeginUserInfoKey).CGRectValue().size
myTableView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
myTableView.scrollIndicatorInsets = myTableView.contentInset
}
func keyboardWillBeHidden (notification: NSNotification)
{
println("keyboard will be hidden")
myTableView.contentInset = UIEdgeInsetsZero
myTableView.scrollIndicatorInsets = UIEdgeInsetsZero
}
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWasShown:", name: UIKeyboardDidShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillBeHidden:", name: UIKeyboardWillHideNotification, object: nil)
}
Lorsque je clique sur le « texte » de la vue défilement aller juste au-dessus du haut de l'écran, mais quand je libère le clavier, il reste fait défiler vers le haut. C'est comme si la propriété insets ne pouvait pas être modifiée après la première fois. Quelle est mon erreur?
Cela ne fonctionne pas! il reste toujours fixe après le premier défilement. Je ne comprends pas pourquoi les affectations à la fonction keyboardWillBeHidden ne fonctionne pas. Est-ce possible parce que la tableview est construite avec Interface Builder et peut-être y a-t-il une option particulière? – Andorath
@Andorath Pouvez-vous me passer l'échantillon? –
comment puis-je vous poncer l'échantillon? – Andorath