gpt4 book ai didi

swift - Swift 中的输入指示器

转载 作者:行者123 更新时间:2023-11-30 12:51:53 26 4
gpt4 key购买 nike

我在 Swift 应用程序中使用 SocketIO,服务器发出信号,客户端监听。我想在用户开始输入时显示,并且想知道如何实现这一点。我检测到这样的输入:

txtMessage.addTarget(self, action: #selector(self.textFieldDidChange(_:)), forControlEvents: UIControlEvents.EditingChanged)

func textFieldDidChange(textField: UITextField) {
//todo: how to let other clients know?
}

一旦我检测到打字,我如何让其他客户知道这一点?客户端本身是否可以执行socket.emit,或者我是否需要将其发送到服务器,并让服务器执行emit?

我尝试做一个socket.emit,socket.on永远不会收到信号。当服务器执行 socket.emit 时,我的 socket.on 监听器确实收到信号。

最佳答案

执行如下操作:(这是用 Javascript 编写的,但这里的概念是您将如何执行此操作)

客户端

const input = document.querySelector('input')
const writing = document.querySelector('p')

input.addEventListener('keyup', () => {
socket.emit('areTheyTyping', {
typing: true
})
if (input.value.length === 0) {
socket.emit('areTheyTyping', {
typing: false
})
}
})

socket.on('areTheyTyping', function(data) {
if (data.typing) {
writing.innerHTML = 'User is writing'
} else {
writing.innerHTML = ''
}
})

服务器

io.on('connection', function(socket) {
const _id = socket.id
socket.on('areTheyTyping', function(data) {
if(data.typing) {
io.emit('areTheyTyping', {typing: true})
} else {
io.emit('areTheyTyping', {typing: false})
}
})
})

关于swift - Swift 中的输入指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40860836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com