我有一个ViewController覆盖整个屏幕的UITextView,但是当我运行该应用程序并在其中输入时,如果我键入键盘然后它不会向上滚动。它只会向上滚动,如果我一直键入到屏幕的最底部,但如果我键入过去键盘所在的位置,那么TextView将不会滚动,并且我正在键入的内容将被隐藏。我该如何解决这个问题?如何防止键盘覆盖UITextView中的文本?
3
A
回答
0
您可以更改textview的框架,使其不在键盘下方。
您可以使用此代码对显示的键盘作出反应并获取键盘的大小。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification
object:nil];
- (void)keyboardWasShown:(NSNotification *)notification
{
CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
int height = MIN(keyboardSize.height,keyboardSize.width);
int width = MAX(keyboardSize.height,keyboardSize.width);
//Place code here to resize textview
}
0
你可以试试这个
这些是用于文本框的委托方法。
请确保您在.h文件中包含了<UITextFieldDelegate>
。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[self animateTextField: textField up: YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[self animateTextField: textField up: NO];
}
- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
const int movementDistance = 80; // tweak as needed
const float movementDuration = 0.3f; // tweak as needed
int movement = (up ? -movementDistance : movementDistance);
[UIView beginAnimations: @"anim" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
self.view.frame = CGRectOffset(self.view.frame, 0, movement);
[UIView commitAnimations];
}
0
IQKeyboardManager是为了创造这个确切的问题而建造的。它只需要一行代码:
IQKeyboardManager.sharedManager().enable = true
我会强烈建议使用它,而不是开发自己的解决方案(虽然是很好的做法,但非常耗费时间)。
相关问题
- 1. 防止键盘覆盖文本框
- 2. 如何防止uitextview中的现有文本被覆盖
- 3. 防止覆盖文件中
- 4. 如何停止覆盖uitableviewcell的uitextview?
- 5. 如何覆盖Android键盘
- 6. 如何防止在文本文件中覆盖?
- 7. 如何防止文件覆盖自身?
- 8. Android键盘覆盖文本框问题
- 9. 滚动文本框覆盖键盘
- 10. 如何防止签入的文件覆盖本地版本?
- 11. 防止文件被覆盖
- 12. 如何防止键盘显示,但允许粘贴UITextView
- 13. 如何防止在C#中覆盖?
- 14. 如何防止打印覆盖文本文件?
- 15. 如何防止多python脚本覆盖相同的文件?
- 16. 如何防止PHP上传脚本覆盖现有文件?
- 17. 如何覆盖默认键盘布局?
- 18. 如何防止覆盖引导行?
- 19. 如何防止TFS覆盖标签?
- 20. 覆盖UITextView
- 21. 防止文本被Node.js中的stream.write()覆盖
- 22. 如何防止Android键盘隐藏编辑文本?
- 23. 键盘覆盖部分edittext
- 24. Android软键盘覆盖EditText?
- 25. 覆盖软键盘布局
- 26. 防止window.onload被覆盖javascript
- 27. 防止覆盖其他Div
- 28. Android通知防止覆盖
- 29. 使用Git防止文件覆盖
- 30. 防止ClientTemplate覆盖GridTemplate中的EditorTemplate
你有没有试图隐藏键盘,只要你不打字? –
@BrunoRecillas是的,但我希望它在用户打字的时候,他们实际上可以在没有键盘的情况下看到他们正在打字的内容。 – PretentiousPanda
好吧。您是否在StoryBoard中为该特定的textView启用了滚动功能? –