javaee论坛

普通会员

225648

帖子

334

回复

348

积分

楼主
发表于 2017-09-09 02:27:09 | 查看: 864 | 回复: 1

最近项目里有个发文字的功能,使用UITextView, 秘书们喜欢从qq上粘贴文字到这里。但是实际发出来时,iOS上有的换行,在Android机器上没有实现换行功能。

测试了下,微博也存在这个问题。


           


印象笔记的体验是,在iOS上粘贴了内容到印象笔记时,去掉粘贴板上的换行,让用户自己来再次换行。

这样防止了iOS用户不知不觉发出去,而Android用户看不到换行效果。我们也采用了这个方案,实现方法如下:


很少用粘贴板,发现 粘贴板.string 是可读可写的。

建议大家将\n 不要替换为空字符串,最好替换成多几个空格,方便用户知道应该在哪儿换行。

还有些空格和换行,实际不是\n,还有可能是\t等造成的,所以我们在这里都替换掉



- (void)applicationWillEnterForeground:(UIApplication *)application {       [StringTools replacePasteboardText];    }



- (void)replacePasteboardText{    //去掉粘贴文字中的换行(适配安卓)    UIPasteboard *board = [UIPasteboard generalPasteboard];    NSString *originStr =  board.string;        if ([Tools isBlankString:originStr]) {//不做这个判断app可能崩溃        return;    }        NSMutableString *resultStr00 = [NSMutableString stringWithString:originStr];    if ([originStr containsString:@" "]) {        resultStr00 = (NSMutableString *)[originStr stringByReplacingOccurrencesOfString: @" " withString: @""];    }        if ([resultStr00 containsString:@"\n"]) {        NSLog(@"包含n换行");        resultStr00 = (NSMutableString *)[resultStr00 stringByReplacingOccurrencesOfString: @"\n" withString: @""];    }        if ([resultStr00 containsString:@"\r"]) {        NSLog(@"包含r回车");        resultStr00 = (NSMutableString *)[resultStr00 stringByReplacingOccurrencesOfString: @"\r" withString: @""];    }        if ([resultStr00 containsString:@"\t"]) {        NSLog(@"包含t水平制表符");        resultStr00 = (NSMutableString *)[resultStr00 stringByReplacingOccurrencesOfString: @"\t" withString: @""];    }        if ([resultStr00 containsString:@"\v"]) {        NSLog(@"包含v垂直制表符");        resultStr00 = (NSMutableString *)[resultStr00 stringByReplacingOccurrencesOfString: @"\v" withString: @""];    }        board.string = resultStr00;    NSLog(@"origin : %@  \n result : %@",originStr,board.string);}









普通会员

1

帖子

296

回复

305

积分
沙发
发表于 2019-12-22 01:22:30

如果这就是爱,再转身的时候就该留下

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017