JSQMessagesViewControllerを使用してメッセージングアプリケーションを構築していますが、ユーザーのテキスト入力に10〜140文字の長さが必要となるかどうかは疑問でした。このようようJSQMessagesViewControllerでユーザーテキストの入力と送信ボタンを無効にする方法
func addMessage(id: String, text: String, displayName: String) {
let message = JSQMessage(senderId: id, displayName: displayName, text: text)
messages.append(message)
}
:
override func didPressSendButton(button: UIButton!, withMessageText text: String!, senderId: String!,
senderDisplayName: String!, date: NSDate!) {
let itemRef = messageRef.childByAutoId() // 1
let messageItem = [ // 2
"text": text,
"senderId": senderId,
"location": getLocation()
]
itemRef.setValue(messageItem) // 3
// 4
JSQSystemSoundPlayer.jsq_playMessageSentSound()
// 5
finishSendingMessage()
Answers.logCustomEventWithName("Message sent", customAttributes: nil)
}
と私のaddMessages
機能:私はこのコードの以下の部分などの機能didPressSendButton
などいくつかの重要なスポットで
if (text.characters.count <= 10 || text.characters.count >= 140) {
self.inputToolbar.sendButtonOnRight = false
}
else {
self.inputToolbar.sendButtonOnRight = true
}
を入れている
:
FUNCのそしてaddMessage(ID:文字列、テキスト:文字列のdisplayName:String)を{
if (text.characters.count <= 10 || text.characters.count >= 140) {
self.inputToolbar.sendButtonOnRight = false
}
else {
self.inputToolbar.sendButtonOnRight = true
let message = JSQMessage(senderId: id, displayName: displayName, text: text)
messages.append(message)
}
}
が動作しないこと。
私にとってどんな作品私のaddMessages機能でこれをやっている:この場合
if (text.characters.count <= 10 || text.characters.count >= 140) {
// pass
}
else {
let message = JSQMessage(senderId: id, displayName: displayName, text: text)
messages.append(message)
}
、文字のフィルタは動作しますが、送信ボタンは、まだ有効になっているので、データは私のデータベースに送信されます私は望んでいない。テキストの入力が十分に長くない、または長すぎない場合は、送信ボタンが完全に無効になっていれば、私の方がはるかに優れています。
誰かが私にこれを手伝うことができれば、それは素晴らしいことでしょう。ありがとう!
ところで、新しい 'sendButton'を作成する必要はありません。おそらく、単に 'self.inputToolbar.contentView.rightBarButtonItem'を使ってデフォルトのボタンにアクセスすることができます –