4

このObjective-Cコードを見たことがありますが、同じことを迅速に行うのに苦労しています:

NSMutableAttributedString *res = [self.richTextEditor.attributedText mutableCopy];

[res beginEditing];
__block BOOL found = NO;
[res enumerateAttribute:NSFontAttributeName inRange:NSMakeRange(0, res.length) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) {
    if (value) {
        UIFont *oldFont = (UIFont *)value;
        UIFont *newFont = [oldFont fontWithSize:oldFont.pointSize * 2];
        [res removeAttribute:NSFontAttributeName range:range];
        [res addAttribute:NSFontAttributeName value:newFont range:range];
        found = YES;
    }
}];
if (!found) {
    // No font was found - do something else?
}
[res endEditing];
self.richTextEditor.attributedText = res;

NSMutableAttributedString各属性を繰り返し処理してフォントを変更しようとしています。もっと良い方法があると聞いてうれしいですが、上記の翻訳を手伝ってくれる人がいれば、私はとてもうれしいです。

4

2 に答える 2

5

それが役に立てば幸い!

var res : NSMutableAttributedString = self.richTextEditor.attributedText!
res.beginEditing()    
var found : bool = false;    
res.enumerateAttribute(NSFontAttributeName,inRange:NSMakeRange(0, res.length),options:0, usingBlock(value:AnyObject!, range:NSRange, stop:UnsafeMutablePointer<ObjCBool>) -> Void in {
    if (value) {
        let oldFont = value as UIFont;
        let newFont = oldFont.fontWithSize(oldFont.pointSize * 2)
        res.removeAttribute(NSFontAttributeName , range:range)
        res.addAttribute(NSFontAttributeName value:newFont range:range)
        found = true
    }
})
if !found {
    // No font was found - do something else?
}
res.endEditing()
self.richTextEditor.attributedText = res;
于 2014-10-24T19:28:14.587 に答える