Как да открия натиснатия клавиш за връщане и да отговоря на него с помощта на протокола UIKeyInput?

Имам табличен изглед, който показва списък, който искам потребителят да може да редактира. За да спестя място и да улесня погледа си, създадох персонализирана лента с инструменти, която съответства на протокола UIKeyInput, така че да мога да изтегля клавиатура, без да се налага да използвам никакви текстови полета. Дотук добре. Имам променлив низ, който обработва въвеждането от клавиатурата:

- (void)insertText:(NSString *)text {
    if (!itemForList) {
        itemForList = [NSMutableString string];
    }    
    [itemForList appendString:text];

}

Нещото, което не мога да разбера как да направя, е да открия, когато потребителят натисне return. Това е важно, защото трябва да мога да взема низа, въведен от потребителя, и да го добавя към променливия масив, от който се показва изгледът на таблицата, и след това да нулирам низа, за да обработва нов вход. Ще бъда много благодарен за всяка помощ в тази област. Благодаря момчета.


person Sam Hazleton    schedule 06.03.2012    source източник
comment
Хейзълтън, добре дошъл в StackOverflow. Сигурен съм, че не сте разбрали, но не трябва да променяте въпроса на напълно нов въпрос. Вашият първоначален въпрос изглежда е получил отговор и този отговор е приет (правилно). Ако имате различен свързан въпрос, моля, публикувайте друг въпрос и евентуално връзка към този за контекст. Първоначалният въпрос трябва да бъде възстановен, за да може да помогне на другите.   -  person NJones    schedule 07.03.2012
comment
благодаря, ще се радвам да го възстановя. има ли някакъв начин да възстановя минала чернова или просто ще трябва да направя всичко възможно, за да запомня какво съм публикувал?   -  person Sam Hazleton    schedule 08.03.2012


Отговори (1)


Опитахте ли да използвате екраниращи знаци? Пример:

- (void)insertText:(NSString *)text {
  if ([text isEqualToString:@"\n"]) {
    //do whatever you want to do when user taps the return key
  }
  if (!itemForList) {
    itemForList = [NSMutableString string];
  }
  [itemForList appendString:text];
}

Дано помогне

person Novarg    schedule 06.03.2012
comment
Не бях пробвал това, просто мислех да го тествам с ascii кода и го написах, но все още не съм го тествал. ако не стане ще пробвам по този начин. - person Sam Hazleton; 07.03.2012
comment
Всъщност имам свързан въпрос: преди съм използвал изгледи на таблици с клавиатури и винаги съм използвал NSNotificationCenter, за да открия кога keyBoardDidShow или KeyBoardWillHide. По някаква причина същият код няма да работи в този случай. Опитах го с ViewController като наблюдател и след това с лентата с инструменти, която извежда клавиатурата като наблюдател, и изглежда, че нито едното не работи. - person Sam Hazleton; 07.03.2012
comment
@SamHazleton, ако бихте предоставили код за това как работите с тези клетки и как изглежда клавиатурата, може би мога да ви помогна. И моля, гласувайте за отговора :) - person Novarg; 07.03.2012
comment
редактирах въпроса си, за да отрази нови данни. не ми позволи да гласувам за вашия отговор, съжалявам - person Sam Hazleton; 07.03.2012
comment
Всъщност току-що зададох напълно нов въпрос, който включва този втори проблем. Ако искате да го разгледате, ще съм благодарен. връзка - person Sam Hazleton; 08.03.2012
comment
моите методи deletebackward и insertText не се извикват в подкласа. Някаква помощ ? - person nr5; 18.10.2013