Ios 使用自定义字符串向后
我使用了一个字符串数组作为表情符号,如下所示:Ios 使用自定义字符串向后,ios,objective-c,nsstring,Ios,Objective C,Nsstring,我使用了一个字符串数组作为表情符号,如下所示: NSArray*表情=@[@“[微笑]”、@“[哭泣]、@“[快乐]”…] 然后在UITextView中显示如下字符串: 我现在很高兴[高兴]现在[微笑] 当我向后单击或删除按钮时,如果最后一个单词在表情符号中,我希望删除整个表情符号字符串,而不仅仅是最后一个字符 有什么想法吗?您可以使用UITextViewDelegate方法检查要删除的内容并删除整个[emoticon]单词来实现类似的效果。我给您介绍了我使用的想法 因为您没有提到您使用的表情符
NSArray*表情=@[@“[微笑]”、@“[哭泣]、@“[快乐]”…]
然后在UITextView中显示如下字符串:
我现在很高兴[高兴]现在[微笑]
当我向后单击或删除按钮时,如果最后一个单词在表情符号中,我希望删除整个表情符号字符串,而不仅仅是最后一个字符
有什么想法吗?您可以使用
UITextViewDelegate
方法检查要删除的内容并删除整个[emoticon]
单词来实现类似的效果。我给您介绍了我使用的想法
因为您没有提到您使用的表情符号。但对于删除逻辑,我想您会从我的代码中了解到这一点
if ([string isEqualToString:@""]) {
NSString *lastChar = [txthiddenTextField.text substringFromIndex: [txthiddenTextField.text length] - 1];
NSLog(@"Last char:%@",lastChar);
txthiddenTextField.text = [txthiddenTextField.text substringToIndex:[txthiddenTextField.text length] - 1];
NSString *strPlaceHolder;
strPlaceHolder = txthiddenTextField.text;
if([lastChar isEqualToString:@"]"])
{
int j = 1;
for (int i = [txthiddenTextField.text length]-1; i >=0; --i)
{
NSString *lastChar = [txthiddenTextField.text substringFromIndex: [txthiddenTextField.text length] - 1];
if([lastChar isEqualToString:@"["])
{
NSLog(@"%d",j);
txthiddenTextField.text = [txthiddenTextField.text substringToIndex:[txthiddenTextField.text length] - 1];
// NSLog(@"Processing character %@",strPlaceHolder);
break;
}
txthiddenTextField.text = [txthiddenTextField.text substringToIndex:[txthiddenTextField.text length] - 1];
j = j+1;
}
}
NSLog(@"My text fild value :%@",txthiddenTextField.text);
return YES;
}
因此,从这里您必须检查结束括号是否出现。如果结束括号将出现,则必须删除开始括号 然后整个表情符号将被删除 希望这有帮助……试试这个
NSString *string = self.textView.text;
__block NSString *deleteWord = nil;
__block NSRange rangeOfWord;
[string enumerateSubstringsInRange:NSMakeRange(0, self.textView.selectedRange.location + self.textView.selectedRange.length) options:NSStringEnumerationByWords | NSStringEnumerationReverse usingBlock:^(NSString *substring, NSRange subrange, NSRange enclosingRange, BOOL *stop) {
deleteWord = substring;
rangeOfWord = enclosingRange;
*stop = YES;
}];
if ([emoticons containsObject:deleteWord]) {
string = [string stringByReplacingCharactersInRange:rangeOfWord withString:@""];
self.textView.text = string;
self.textView.selectedRange = NSMakeRange(rangeOfWord.location, 0);
}
您可以使用共享返回按钮操作方法吗。@Macrosoft Dev只是一个UIButton操作。您是显示文字字符串“[smile]”还是将真正的表情符号@MartinR“[happy]”映射到自定义图像