美文网首页
【已解决】Mac OS X中如何设置Label(NSTextFi

【已解决】Mac OS X中如何设置Label(NSTextFi

作者: 拳战攻城师 | 来源:发表于2018-09-19 15:17 被阅读0次

    问题

    在Mac OS X开发过程中,经常会使用Label(NSTextFiled)控件,对于文本长度不定的Label,我们如何设置其自动居中?

    解决方案

    Label居中时X、Y坐标的计算如下图所示


    image.png

    假设有一个label处于superView中,当我们修改label内容后,我们可以通过以下方式调整位置,使其居中。

    IBOutlet NSView *superView;
    __weak IBOutlet NSTextField *label
    
    //设置其值
    label.stringValue = @"dasdasdsadsmkasjdkaldjanjskajshdjakdhadakhdsj";
    
    //自适应大小(改变label的宽度,使其刚刚好可以容纳字符)
    [label sizeToFit];
    
    //调整居中位置(主要调整X方向的位置)
    CGFloat frameMidX = NSMidX(superView.frame);    
    CGFloat frameHalfWidth = (NSWidth(label.frame)/2);
    CGFloat diff = frameMidX - frameHalfWidth;
    label.frame = NSMakeRect(diff,
                            NSMinY(label.frame),
                            NSWidth(label.frame),
                            NSHeight(label.frame));
    
    

    相关文章

      网友评论

          本文标题:【已解决】Mac OS X中如何设置Label(NSTextFi

          本文链接:https://www.haomeiwen.com/subject/qieinftx.html