I'm not sure why your nav bar would move. If you are subclassing or using a UINavigationControlller then the nav bar itself will be provided by default but you can always hide it. If you are not and just want just a UINavgivationBar and not the stack of view controllers that you get with the controller than its possible to move the frame. I suggest using a nav controller instead to ensure your bar won't ever move.
To address the keyboard not hiding when you click off. There is no "automatic" way to do this you must explicitly call the method resignFirstResponder on a saved reference to the textfield you clicked to make the keyboard appear. The best way to do this is create a NSMutableArray property and implement the UITextfieldDelegate in your view controller .h and put the method -(void)textfiedDidBeginEditing:(UITextfield *)textfield I'm your .m and add the textfied to the mutable array inside there. From there you need to decide how the user will dismiss the keyboard IE clicked the background. So the easiest way is to add a giant UIButton with no text to the background that calls a method that loops through that mutablearray and calls the resignFirstResponder on everything and clears the array when done.
or you can always change the keyboard type of the textfield to be one that has a done button.
The choice is yours!