2015-11-04 2 views
0

Например, в приложениях чата, когда пользователь создает сообщение, приложение показывает typing значок, но если пользователь прекратил компоновку в середине сообщения, приложение исчезает composing значок.Как определить, что пользователь вводит сообщение?

Как приложение может обнаружить, что пользователь прекратил печатать в середине составления или по-прежнему печатать?

Например:

Хель (показать значок типирование)

перестал печатать (значок скрыть типизации)

вот (продолжайте печатать - шоу снова)

+1

проверка keybaord активен или нет и отправить данные в API на изменение статуса –

+0

Если вы используете XMPP в этом случае вам необходимо отправить сочинял статус сервера, когда клавиатура активна в противном случае не нужно отправить Это. –

+0

@DharmbirChoudhary пожалуйста, внимательно прочитайте мой вопрос. Я спросил, если пользователь остановился посреди составления сообщения. Он просто остановился. Забудьте о клавиатуре –

ответ

0

Если вы используете UITextField ниже, это может помочь вам.

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ 
} 

Если вы используете UITextView попробовать ниже

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ 
} 
0

Во-первых, вам нужно определить, когда пользователь запускает ввод. Вы можете addTarget ваш UITextField объект. Когда пользователь перестает печатать, просто установите таймер в этой цели;

textField.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged) 

func textFieldDidChange(textField: UITextField) { 

    textTimer?.invalidate() 
    textTimer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: Selector("textFieldStopChanging:"), userInfo: nil, repeats: false) 
    print("Start typing") 
} 

func textFieldStopEditing(sender: NSTimer) { 

    print("Stop typing") 
}