gpt4 book ai didi

ios - JSQMessageViewController 自定义发送按钮

转载 作者:行者123 更新时间:2023-11-29 11:56:33 24 4
gpt4 key购买 nike

我正在构建一个消息传递应用程序,我使用 JSQMessageViewController 来呈现消息,它非常棒。现在我在尝试自定义发送按钮时遇到了一个小问题:

基本上我想将左右 BarButtonItem 替换为带有图像的自定义按钮。经过几个小时的阅读和搜索,我现在已经走到这一步了:

button without text

button with text

如图所示,如果文本字段中没有文本,则替换原始发送按钮的语音按钮将被禁用,这种行为不是我想要的。如何禁用此行为并使按钮始终可用?

这就是我自定义发送按钮的方式:

  UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
[rightButton setBackgroundImage:[UIImage imageNamed:@"AudioButton@2x.png"] forState:UIControlStateNormal];
self.inputToolbar.contentView.rightBarButtonItem = rightButton;

最佳答案

如果你想让按钮一直可用,在“JSQMessagesInputToolbar.h”中找到此方法并在旧代码

中注释这些行
- (void)toggleSendButtonEnabled
{
BOOL hasText = [self.contentView.textView hasText];

// if (self.sendButtonOnRight) {
// self.contentView.rightBarButtonItem.enabled = hasText;
// }

// else {
// self.contentView.leftBarButtonItem.enabled = hasText;
// }

}

在新的 JSQ 代码中

- (void)updateSendButtonEnabledState
{
if (!self.enablesSendButtonAutomatically) {
return;
}

BOOL enabled = [self.contentView.textView hasText];
// switch (self.sendButtonLocation) {
// case JSQMessagesInputSendButtonLocationRight:
// self.contentView.rightBarButtonItem.enabled = enabled;
// break;
// case JSQMessagesInputSendButtonLocationLeft:
// self.contentView.leftBarButtonItem.enabled = enabled;
// break;
// default:
// break;
// }
}

关于ios - JSQMessageViewController 自定义发送按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38848035/

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