2016-08-31 8 views
0

У меня есть UITextFields в пользовательском заголовке navigationitem. Когда я касаюсь его правой стороны, он тоже фокусируется. Я проверяю ситуацию в методе hittest. Вот данные.Почему UITextField of navigationItem настраиваемый заголовок изображения фокусируется при касании за пределами его границ?

hitbounds field point: {269, 6.5}, bounds:{{0, 0}, {255, 35}}; searchView point: {59, 6.5}, bounds: {{0, 0}, {45, 35}}; searchButton: {58, 11}, bounds: {{0, 0}, {44, 44}} 

Полевое поле содержит поисковое окно справа, содержащее кнопку поиска.

пункт поля: {269, 6.5}, границы: {{0, 0}, {255, 35}};
Точка зрения четко не определена. Но поле получает foucsed и клавиатура появляется.

И в конце концов, я считаю, когда появится клавиатура, методы даже не называются pointInside:(CGPoint)point withEvent:(UIEvent *)event hitTest:(CGPoint)point withEvent:(UIEvent *)event

Почему? Благодарю.

ответ

0

Я получил ключ от Why does UINavigationBar steal touch events?

Я думаю панель навигации украсть сенсорное событие и отправку сенсорную события непосредственно TextField.

Итак, вот решение. Это работает хорошо.

@implementation UINavigationBar(Xxxxxx) 

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    UIView *v = [super hitTest:point withEvent:event]; 
    return v == self ? nil: v; 
} 

@end 

 Смежные вопросы

  • Нет связанных вопросов^_^