我有一个工具栏,我需要在编辑文本时使用它,什么时候不需要。
在以前的应用中,我手动移动了工具栏(监听通知等)
但我想使用 inputAccessoryView ...所以在我的 viewDidLoad 中,我这样做了
for (/*myTextFields*/) {
textField.inputAccessoryView = keyboardToolbar;
}
[self.view addSubView:keyboardToolbar];
效果很好,工具栏出现,我点击一个文本字段,工具栏向上滑动 - 一切都很好。
但是当我随后隐藏键盘时,inputAccessoryView 将我的工具栏拖离屏幕。有没有办法告诉 inputAcessoryView 它的固定位置在哪里? - 还是我必须回到我以前的收听通知方式等...?
Best Answer-推荐答案 strong>
我通过监听通知并向上移动工具栏解决了这个问题......哦,好吧。
这样的事情可以完成:
- (void)viewWillAppearBOOL)animated
{
[super viewWillAppear:animated];
/* Listen for keyboard */
[[NSNotificationCenter defaultCenter] addObserver:self selectorselector(keyboardWillShow name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selectorselector(keyboardWillHide name:UIKeyboardWillHideNotification object:nil];
}
- (void)keyboardWillShowNSNotification *)notification
{
[keyboardToolbar setItems:itemSetFull animated:YES];
/* Move the toolbar to above the keyboard */
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect frame = self.keyboardToolbar.frame;
frame.origin.y = self.view.frame.size.height - 210.0;
self.keyboardToolbar.frame = frame;
[UIView commitAnimations];
}
- (void)keyboardWillHideNSNotification *)notification
{
[keyboardToolbar setItems:itemSetSmall animated:YES];
/* Move the toolbar back to bottom of the screen */
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect frame = self.keyboardToolbar.frame;
frame.origin.y = self.view.frame.size.height - frame.size.height;
self.keyboardToolbar.frame = frame;
[UIView commitAnimations];
}
我猜输入附件 View 实际上只是用于卡在键盘顶部的东西
关于ios - iPhone:如何将 inputAccessoryView 修复为 View?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/6784171/
|