bug修复
This commit is contained in:
@@ -102,6 +102,7 @@ static void KBSkinInstallNotificationCallback(CFNotificationCenterRef center,
|
|||||||
@property(nonatomic, strong) NSMutableArray<KBChatMessage *> *chatMessages;
|
@property(nonatomic, strong) NSMutableArray<KBChatMessage *> *chatMessages;
|
||||||
@property(nonatomic, strong) AVAudioPlayer *chatAudioPlayer;
|
@property(nonatomic, strong) AVAudioPlayer *chatAudioPlayer;
|
||||||
@property(nonatomic, assign) BOOL chatPanelVisible;
|
@property(nonatomic, assign) BOOL chatPanelVisible;
|
||||||
|
@property(nonatomic, copy) NSString *chatPanelBaselineText; // 打开聊天面板时宿主输入框已有的文本
|
||||||
@property(nonatomic, strong, nullable) id kb_fullAccessObserverToken;
|
@property(nonatomic, strong, nullable) id kb_fullAccessObserverToken;
|
||||||
@property(nonatomic, strong, nullable) id kb_skinObserverToken;
|
@property(nonatomic, strong, nullable) id kb_skinObserverToken;
|
||||||
@end
|
@end
|
||||||
@@ -563,6 +564,9 @@ static NSString *KBFormatMB(uint64_t bytes) {
|
|||||||
}
|
}
|
||||||
self.chatPanelVisible = show;
|
self.chatPanelVisible = show;
|
||||||
if (show) {
|
if (show) {
|
||||||
|
// 记录打开聊天面板时宿主输入框已有的文本,发送时只取新增部分
|
||||||
|
[[KBInputBufferManager shared] refreshFromProxyIfPossible:self.textDocumentProxy];
|
||||||
|
self.chatPanelBaselineText = [KBInputBufferManager shared].liveText ?: @"";
|
||||||
[self kb_ensureChatPanelViewIfNeeded];
|
[self kb_ensureChatPanelViewIfNeeded];
|
||||||
self.chatPanelView.hidden = NO;
|
self.chatPanelView.hidden = NO;
|
||||||
self.chatPanelView.alpha = 0.0;
|
self.chatPanelView.alpha = 0.0;
|
||||||
@@ -1033,7 +1037,15 @@ static NSString *KBFormatMB(uint64_t bytes) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
[[KBInputBufferManager shared] refreshFromProxyIfPossible:self.textDocumentProxy];
|
[[KBInputBufferManager shared] refreshFromProxyIfPossible:self.textDocumentProxy];
|
||||||
NSString *rawText = [KBInputBufferManager shared].liveText ?: @"";
|
NSString *fullText = [KBInputBufferManager shared].liveText ?: @"";
|
||||||
|
|
||||||
|
// 去掉打开聊天面板前宿主输入框里已有的基线文本,只取新增部分
|
||||||
|
NSString *baseline = self.chatPanelBaselineText ?: @"";
|
||||||
|
NSString *rawText = fullText;
|
||||||
|
if (baseline.length > 0 && [fullText hasPrefix:baseline]) {
|
||||||
|
rawText = [fullText substringFromIndex:baseline.length];
|
||||||
|
}
|
||||||
|
|
||||||
NSString *trim =
|
NSString *trim =
|
||||||
[rawText stringByTrimmingCharactersInSet:
|
[rawText stringByTrimmingCharactersInSet:
|
||||||
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
||||||
@@ -1042,6 +1054,7 @@ static NSString *KBFormatMB(uint64_t bytes) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
[self kb_sendChatText:trim];
|
[self kb_sendChatText:trim];
|
||||||
|
// 只清除新增的文本,保留基线文本
|
||||||
[self kb_clearHostInputForText:rawText];
|
[self kb_clearHostInputForText:rawText];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user