MacOS 开发 - Label

2017年09月14日 10:39:31 lovechris00 阅读数:2079更多

所属专栏: macOS 开发

版权声明:本文为博主原创文章,转载请附上本文链接地址。from : https://blog.csdn.net/lovechris00 https://blog.csdn.net/lovechris00/article/details/77977541

也许你也听说,cocoa 中并没有 UILable ,也没有 NSLabel。 

cocoa 中的 label 实际上是 NSTextField,并将editable = NO; 来实现显示效果。这是不是和 iOS 中的UITextView 很像呢?

下面通过代码简单介绍下cocoa 中的 label 的使用。 

代码默认写在一个 NSWindowController 的子类中。

创建

- (void)addLabel{

    NSTextField *label0 = [[NSTextField alloc]init];

    label0.editable = NO;

    label0.bordered = NO; //不显示边框

    label0.backgroundColor = [NSColor greenColor]; //控件背景色

    label0.textColor = [NSColor magentaColor];  //文字颜色

    label0.alignment = NSRightTextAlignment; //水平显示方式

    label0.maximumNumberOfLines = 2; //最多显示行数

    label0.frame = NSMakeRect(100, 100, 100, 100);

    label0.stringValue = @"测试文字聚会就大戽水抗旱萨克的";  //现实的文字内容

    label0.stringValue = @"测试";

    [self.window.contentView addSubview:label0];

}

显示多行文字

使用 IB 时,修改break mode 为 wrap 模式即可;

pastedGraphic.png

使用代码:

正确做法:

常用分类

想要快速创建 Label,可以创建 NSTextfield 的分类 。使用 NSTextfield 初始化后,可以调用 msLabelStyle 来使field 作为label 来显示。

- (void)msLabelStyle{

    self.editable = NO;

    self.bordered = NO;

    self.font = [NSFont systemFontOfSize:14];

    self.textColor = kColor_TextBlack;

    self.backgroundColor = [NSColor clearColor];

    self.stringValue = @"";

}

属性字符 attributedStringValue

- (void)addAttriText{

    NSString *linkURLText = @"http://www.apple.com/";

    NSString *text = [NSString stringWithFormat:@"please visit %@",linkURLText];

    NSURL *linkURL = [NSURL URLWithString:linkURLText];

    NSRange selectedRange = [text rangeOfString:linkURLText];

    NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:text];

    [string beginEditing];

    [string addAttribute:NSLinkAttributeName

                   value:linkURL

                   range:selectedRange];

    [string addAttribute:NSForegroundColorAttributeName

                   value:[NSColor blueColor]

                   range:selectedRange];

    [string addAttribute:NSUnderlineStyleAttributeName

                   value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:selectedRange];

    [string endEditing];

    self.richTextLabel.attributedStringValue = string;

}

猜你喜欢

转载自www.cnblogs.com/sundaymac/p/10329649.html