首页 > 系统服务 > 详细

MacOS 开发 - Label

时间:2019-01-28 12:52:37      阅读:292      评论:0      收藏:0      [点我收藏+]

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 模式即可;

技术分享图片

 

使用代码:

正确做法:

 

 

常用分类

想要快速创建 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;

}

MacOS 开发 - Label

原文:https://www.cnblogs.com/sundaymac/p/10329649.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!