ios - 如何检测用户正在输入消息?

标签 ios swift algorithm xmpp logic

例如,在聊天应用中,当用户正在撰写消息时,应用会显示 typing 图标,但如果用户在消息中间停止撰写,app composing 图标消失。

应用程序如何检测用户在撰写过程中停止输入或仍在输入?

例如:

hel(显示打字图标)

停止输入(隐藏输入图标)

lo(继续输入 - 再次显示)

最佳答案

首先,您需要检测用户何时开始输入。您可以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")
}

关于ios - 如何检测用户正在输入消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33523094/

相关文章:

ios - 如何到达 JSON 的复杂部分?

algorithm - 最后剩下的数字(动态规划)

arrays - 如何求 NSMutableArray 所有元素的总和? swift

ios - Swift 4 中的 AWS DynamoDB updateItem 问题

algorithm - 如何让这个 DP 在 O(NH) 中运行?

algorithm - 大小为 k 的最常见子集

ios - CallKit CXCallController.request error com.apple.CallKit.error.requesttransaction Code=6 while app is in the background

ios - 在 NSData 上使用 .forEach

iphone - 通过域名屏蔽 UIWebView 中的图片

swift - 在不知道父级的情况下获取 firebase 键和值的值