suchen

Heim  >  Fragen und Antworten  >  Hauptteil

ios - NSMutableString appendFormat 遇到的问题 附上内容 请帮忙看看,问题很怪异!!!

NSMutableString* str_attachMent = [NSMutableString stringWithFormat:@"附件(%ld):",attachedCount];

    for ( int i = 0 ; i < attachedCount ; i++) {
        FileInfo *fileInfo = (FileInfo*)mailInfo.attachedArr[i];
        if (i < mailInfo.attachedCount - 1)
        {

             [str_attachMent appendFormat:@"%@;",fileInfo.fileName];

            
        }else {

            [str_attachMent appendString:fileInfo.fileName];
          
        
        }
    }

最后str_attachMent得到拼装好的字符串是如下内容:
附件(9): 404.HTML;BLOG.HTML;BLOG_SINGLE.HTML;CONTACT.HTML;INDEX.HTML;LOGIN.HTML;MEN.HTML;REGISTER.HTML;SINGLE.HTML
可以把内容复制到记事本上面试验下,为什么强行被换行了,而且我是没办法把404这行移到附件(9):后面
[str_attachMent stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 移除空格和换行也没有作用.

我估计是拼装内容的问题,但是这个问题没有办法解决么.

PHPzPHPz2771 Tage vor664

Antworte allen(2)Ich werde antworten

  • 高洛峰

    高洛峰2017-04-18 09:44:59

    不是强行转行,在排版的时候系统将
    “404.HTML;BLOG.HTML;BLOG_SINGLE.HTML;CONTACT.HTML;INDEX.HTML;LOGIN.HTML;MEN.HTML;REGISTER.HTML;SINGLE.HTML”看作是一个单词了,在显示的时候“附件(9): ”所在的当前行无法将其完整显示,所以自动跳转到下一行显示,除非你显示的文本框够宽。就好比你在发问题的时候直接像这样打印这句话,它也会换行显示,
    附件(9): 404.HTML;BLOG.HTML;BLOG_SINGLE.HTML;CONTACT.HTML;INDEX.HTML;LOGIN.HTML;MEN.HTML;REGISTER.HTML;SINGLE.HTML
    但是你在每一个分号后面加上一个空格,效果就是这样的:
    附件(9):404.HTML; BLOG.HTML; BLOG_SINGLE.HTML; CONTACT.HTML; INDEX.HTML; LOGIN.HTML; MEN.HTML; REGISTER.HTML; SINGLE.HTML
    因为你加了空格,区分开每一个分号前是一个整体,所以在排版的时候就不会出现你的这个问题。

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:44:59

    对于UITextView 各种 处理文本的UI 控件会改变文本的排版问题,使用NSMutableAttributedString 可以解决.
    NSString* str = [NSString stringWithFormat:@"附件(%ld):",str1];

        NSMutableParagraphStyle* linebreak = [[NSMutableParagraphStyle alloc]init];
        linebreak.lineBreakMode = NSLineBreakByCharWrapping;
        NSMutableAttributedString *str_attachMent = [[NSMutableAttributedString alloc] initWithString:str attributes:@{NSParagraphStyleAttributeName:linebreak}];
        textView.attributedText = str_attachMent; 
    

    Antwort
    0
  • StornierenAntwort