У меня проблема, которую я не могу понять.
Что у меня настроено:
- Пользовательский UITableViewCell, в котором есть несколько текстовых полей.Аналогично настройке Apple при добавлении нового адреса для кого-то в контактах.
- Таблица с пользовательской ячейкой представляется как модальное представление.Это табличное представление также имеет другие ячейки, которые являются общими (то есть не пользовательская ячейка, указанная в 1.).
- Представленный модальный вид имеет панель инструментов вверху, которая содержит кнопку «Готово».Когда нажата кнопка «Готово», модальное представление отправляет вызов своему делегату и отклоняет его.
Проблема, с которой я столкнулся: Когда пользователь выбирает UITextField и начинает редактировать UIKeyboard, он представлен (очевидно, верно?).Если клавиатура открыта, и пользователь выбирает «готово» на панели инструментов (как указано в 3.), приложение вылетает, потому что родительское представление пытается отклонить модальное представление (модальное представление, содержащее клавиатуру), пока клавиатура открыта,
Высокий уровень, похоже, он должен работать следующим образом:
Пользователь нажимает кнопку «Готово» на панели инструментов -> проверить, открыта ли UIKeyboard -> если открыт, закрыть, иначе закрыть модальное представление
Но это было не так просто.
Я вырывал свои волосы, пытаясь найти жизнеспособную работу вокруг этого, и ничто, кажется, не работает.
Любые предложения будут очень признательны.
Редактировать
Вот журнал сбоев:
2011-12-22 16:03:09.021 Renshaw[2308:5f43] bool _WebTryThreadLock(bool), 0xad7a9e0: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...
1 _ZL17_WebTryThreadLockb
2 WebThreadLock
3 -[UITextRangeImpl isEmpty]
4 -[UITextRange(UITextSelectionAdditions) _isCaret]
5 -[UITextSelectionView setCaretBlinks:]
6 -[UIKeyboardImpl setCaretBlinks:]
7 -[UIKeyboardImpl setDelegate:force:]
8 -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:]
9 -[UIResponder _finishResignFirstResponder]
10 -[UIResponder resignFirstResponder]
11 -[UITextField resignFirstResponder]
12 -[UIView(UITextField) endEditing:]
13 -[UIWindowController _prepareKeyboardForTransition:fromView:]
14 -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:]
15 -[UIViewController _dismissViewControllerWithTransition:from:completion:]
16 -[UIViewController dismissViewControllerWithTransition:completion:]
17 -[UIViewController dismissViewControllerWithTransition:completion:]
18 -[ListingsViewController postSearch:allObjects:constrainedList:]
19 -[FilterViewController searchObjects]
20 -[NSObject performSelector:withObject:]
21 -[MBProgressHUD launchExecution]
22 -[NSThread main]
23 __NSThread__main__
24 _pthread_start
25 thread_start
[Switching to process 10499 thread 0x2903]
[Switching to process 10499 thread 0x2903]