Я искал оптимизированный метод, чтобы скрыть клавиатуру на заднем плане, когда UITextFields
находятся в UITableViewCell
. Надеюсь, это поможет вам.Скрыть клавиатуру, коснувшись фона UITableView
1
A
ответ
1
Я сделал категорию tableview
для скрытия клавиатуры на заднем плане, а tableview
содержит textfield
.
Мой заголовочный файл:
#import <UIKit/UIKit.h>
#import "Utility.h"
@interface UITableView (HitTest)
@end
Мой файл реализации:
#import "UITableView+HitTest.h"
@implementation UITableView (HitTest)
UITableViewCell *activeCell;
-(UIView*) hitTest:(CGPoint)point withEvent:(UIEvent*)event
{
NSInteger iterations = 0;
// check to see if the hit is in this table view
if ([self pointInside:point withEvent:event])
{
UITableViewCell* newCell = nil;
// hit is in this table view, find out
// which cell it is in (if any)
for (UITableViewCell* aCell in self.visibleCells)
{
iterations ++;
if ([aCell pointInside:[self convertPoint:point toView:aCell] withEvent:event])
{
newCell = aCell;
break;
}
}
if (!newCell)
{
for (UIView *view in activeCell.subviews)
{
iterations++;
if ([view isFirstResponder])
{
[view resignFirstResponder];
break;
}
}
}
else
{
activeCell = newCell;
}
NSLog(@"total Iterations:%d",iterations);
}
// return the super's hitTest result
return [super hitTest:point withEvent:event];
}
@end
Это работает хорошо для меня.
1
Doing HitTest делаешь, кажется, правильный путь
Вы можете реализовать сенсорные события на View, на котором Tableview проживает, как показано ниже.
Также присвойте объекту textField переменной-члену в textFieldDidBeginEditing
, чтобы вы могли уйти в отставку с определенного текстового поля, для которого отображается keyborad.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[textFieldObject resignFirstResponder];
}
Смежные вопросы
- 1. Скрыть клавиатуру, коснувшись фона UITableViewContoller
- 2. Скрыть клавиатуру, коснувшись экрана
- 3. UITableView onTouch скрыть клавиатуру
- 4. Могу ли я отменить клавиатуру iPhone, коснувшись фона DialogViewController (MonoTouch.Dialog)?
- 5. Скрыть клавиатуру при касании uitableview
- 6. Скрыть мягкую клавиатуру после касания фона или линейного выхода
- 7. IOS: скрыть клавиатуру при касании UITableView
- 8. Нажатие UIScrollView, чтобы скрыть клавиатуру?
- 9. Нажатие UIScrollView, чтобы скрыть клавиатуру?
- 10. Как скрыть клавиатуру в UITableViewController?
- 11. Можно ли отклонить клавиатуру, коснувшись внешней ячейки в MonoTouch.Dialog?
- 12. Как скрыть клавиатуру на ощупь UITableView в iOS Obj-C
- 13. Скрыть мягкую клавиатуру или принудительно сменить фокус, чтобы скрыть клавиатуру
- 14. Как скрыть мягкую клавиатуру?
- 15. Программно скрыть клавиатуру
- 16. XCode TextField Скрыть клавиатуру
- 17. Скрыть клавиатуру autocompletetextview
- 18. Nativescript Android - скрыть клавиатуру
- 19. Скрыть клавиатуру по умолчанию
- 20. Скрыть клавиатуру на ViewWillAppear
- 21. Скрыть клавиатуру в iOS
- 22. Скрыть клавиатуру/resignFirstResponder принудительно
- 23. скрыть клавиатуру в Android
- 24. Скрыть сенсорную клавиатуру
- 25. Скрыть клавиатуру, нажав кнопку
- 26. Скрыть клавиатуру и secureTextField
- 27. Как скрыть виртуальную клавиатуру
- 28. Скрыть клавиатуру при размытии
- 29. Скрыть клавиатуру с кнопкой
- 30. Скрыть клавиатуру в UIWebView
Как насчет этого? http://stackoverflow.com/questions/4399357/hide-keyboard-when-scroll-uitableview – Schultz9999