我有一个位于视图底部的搜索栏。
如何设置UIKeyboard的位置?
答案 0 :(得分:2)
使用CGAffineTransform 至少从我观察到并测试过4.0之前的OS版本需要定义变换, 从操作系统4.0和更高的操作系统正在处理键盘定位。 这就是为什么我在设置Transform之前检查systemVersion。
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 4.0) {
CGAffineTransform translate = CGAffineTransformMakeTranslation(xx.0, yy.0);//use x,y values
[self setTransform:translate];
}
答案 1 :(得分:1)
您无法设置键盘的位置,您只能询问键盘的位置并适当地组织其他视图。
// Somewhere you need to register for keyboard notifications
- (void)viewDidLoad {
[super viewDidLoad];
// Register for keyboard notifications
NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
//... do something
}
// At some point you need to unregister for notifications
- (void)viewWillHide {
NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
[defaultCenter removeObserver:self];
}
- (void)keyboardWasShown:(NSNotification*)aNotification
{
// Caution, this notification can be sent even when the keyboard is already visible
// You'll want to check for and handle that situation
NSDictionary* info = [aNotification userInfo];
NSValue* aValue = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
//... do something
}
答案 2 :(得分:1)
您没有设置键盘的位置。系统会自动为您完成。
您需要做的是使用键盘通知将搜索栏移动到可见部分