Направете UITextField вътре в табличен изглед видимо превъртане

Имам UITableViewController, куп секции и редове и за всеки ред добавих UITextField като подизглед, подравнен вдясно в самия ред.

Ако потребителите докоснат реда, аз локално запазвам indexPath, правя съответното текстово поле да стане първият отговор и накрая, когато се появи клавиатурата, карам изгледа на таблицата да се превърта, така че редът да остане видим.

Изправен съм пред проблема да получа същото поведение, когато вместо това потребителят докосне текстовото поле. В този случай методът didSelectRowAtIndexPath: не се извиква, така че не знам как да кажа на табличния изглед да превърта, за да се уверя, че "избраният" ред все още е видим.

Вероятно целият процес не е правилен. Знаете ли начин да го разрешите?

Благодаря много!


person marzapower    schedule 07.05.2011    source източник


Отговори (1)


Не съм абсолютно сигурен в това, но...

Задайте свойството userInteractionEnabled на UITextField на NO. По този начин докосването преминава "през" контролата, докосвайки UITableViewCell. Когато се извика didSelectRowAtIndexPath:, задайте свойството userInteractionEnabled на UITextField на YES. Когато редактирането приключи, променете го обратно на NO.

person Evan Mulawski    schedule 07.05.2011
comment
Добре, със сигурност работи по този начин. Страхувам се само, че UITextFields може да остане с флага userInteractionEnabled, зададен на YES, ако отхвърля клавиатурата по странен начин (напр. докосване на други контроли или превключване на изгледи на лентата с раздели и т.н.). - person marzapower; 08.05.2011
comment
Ако внедрите UITextFieldDelegate метода textFieldDidEndEditing: и зададете userInteractionEnabled на NO там, това няма да се случи. - person Evan Mulawski; 08.05.2011
comment
@marzapower: Ако имате нужда от още помощ за това, уведомете ме. - person Evan Mulawski; 09.05.2011