gpt4 book ai didi

iOS UIToolBar 隐藏在键盘上

转载 作者:行者123 更新时间:2023-11-28 17:53:04 26 4
gpt4 key购买 nike

在底部的 ViewController 中,我有一个 UIToolBar (myToolbar),因为我有一个 UITextField (messageTxt) 和一个按钮。当我尝试在 messageTxt 上写任何东西时,键盘出现但它隐藏了工具栏。因此,在我不关闭键盘之前,我无法知道我输入了什么。我正在寻找,当我开始打字时,我应该能够看到我正在打字的内容。为此,也许可以缩小 View 并在下面添加键盘,或者如何实现。

对于其他站点,我实现了以下内容,但仍然看不到我输入的内容。我可以在键入时看到建议,但看不到我正在键入的内容。你能帮我知道我哪里出错了吗?我的代码是:-

在我的 viewDidLoad 方法中,添加了这两个键盘通知。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

[super viewDidLoad];

通知方法的实现。

-(void) keyboardWillShow: (NSNotification *) notification {
UIViewAnimationCurve animationCurve = [[[notification userInfo] valueForKey:UIKeyboardAnimationCurveUserInfoKey] intValue];
NSTimeInterval animationDuration = [[[notification userInfo] valueForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect keyboardBounds = [(NSValue *) [[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:animationCurve];
[UIView setAnimationDuration:animationDuration];
[self.myToolBar setFrame:CGRectMake(30.0f, self.view.frame.size.height - keyboardBounds.size.height - self.myToolBar.frame.size.height, self.myToolBar.frame.size.width, self.myToolBar.frame.size.height)];
[UIView commitAnimations];

}

-(void) keyboardWillHide: (NSNotification *) notification {
UIViewAnimationCurve animationCurve = [[[notification userInfo] valueForKey:UIKeyboardAnimationCurveUserInfoKey] intValue];
NSTimeInterval animationDuration = [[[notification userInfo] valueForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect keyboardBounds = [(NSValue *) [[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:animationCurve];
[UIView setAnimationDuration:animationDuration];

[self.myToolBar setFrame:CGRectMake(0.0f, self.view.frame.size.height - 46.0f, self.myToolBar.frame.size.width, self.myToolBar.frame.size.height)];
[UIView commitAnimations];

}

最后添加了这个 TextDelegate 方法,以了解它何时获得焦点。

-(void) textFieldDidBeginEditing:(UITextField *)textField {

//[self.messageTxt setInputAccessoryView:self.myToolBar];
}

我哪里出错了或者我的代码中缺少什么?还有一点,我希望实现 TextField 的 TextView 嵌入 - 因为我想要多行输入。我相信这是可能的,并且使用 TExtView 的上述实现也不会有任何问题。在 View 中添加 TextView 和 Button 而不是 ToolBar 是更好的选择,还是可以用 ToolBar 很好地管理它?什么是更好的选择?

非常感谢任何帮助。谢谢。

最佳答案

在查看didload方法中放入代码:

txtfield.inputAccessoryView = (Instance of your UIToolbar)

上面写的其他代码都可以。您应该在键盘出现之前设置 AccessoryView,以便在键盘打开时显示工具栏。

关于iOS UIToolBar 隐藏在键盘上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25337649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com