Ios 如何检测用户正在键入消息?
例如,在聊天应用程序中,当用户撰写消息时,应用程序会显示Ios 如何检测用户正在键入消息?,ios,swift,algorithm,xmpp,logic,Ios,Swift,Algorithm,Xmpp,Logic,例如,在聊天应用程序中,当用户撰写消息时,应用程序会显示键入图标,但如果用户停止撰写消息中间的,应用程序会消失撰写图标 应用程序如何检测用户在排版或打字期间停止打字? 例如: hel(显示键入图标) 停止键入(隐藏键入图标) lo(继续键入-再次显示)如果您正在使用UITextField,下面的方法可能会对您有所帮助 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range rep
键入
图标,但如果用户停止撰写消息中间的,应用程序会消失撰写
图标
应用程序如何检测用户在排版或打字期间停止打字?
例如: hel(显示键入图标) 停止键入(隐藏键入图标)lo(继续键入-再次显示)如果您正在使用UITextField,下面的方法可能会对您有所帮助
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
}
如果您正在使用UITextView,请尝试下面的方法
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
}
首先,您需要检测用户何时开始键入。您可以
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")
}
检查键盘是否处于活动状态,并在状态发生变化时向API发送信息。如果您正在使用xmpp,则需要在键盘处于活动状态时向服务器发送排版状态,否则不需要发送。@Dharbirchoudhary请仔细阅读我的问题。我问,如果用户停止在消息组成的中间。他只是停了下来。忘了keyboard@Orkhan您可以在ShouldChangeCharactersRange中调用您的方法。