macOS 开发NSTextField控件 macOS中并没有 UILable ,也没有 NSLabel


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

-(void)viewDidLoad {
    [super viewDidLoad];
     NSTextField *lbl = [[NSTextField alloc] init];
     lbl.frame = CGRectMake(100, 100, 200, 44);
     lbl.stringValue = @"啦啦啦";
     [self.view addSubview:lbl];
}

复制以上代码即可简单运行NSTextField

以下是项目运行

#import "ViewController.h"

@interface ViewController ()
/** macos 文本 */
@property (nonatomic, weak) NSTextField *lblnew;
@end

@implementation ViewController

#pragma mark 懒加载 macos 文本
- (NSTextField *)lblnew {
    if (!_lblnew) {
        NSTextField *lbl = [[NSTextField alloc] init];
        [self.view addSubview:lbl];
        _lblnew = lbl;
    }
    return _lblnew;
}

-(void)viewDidLoad {
    [super viewDidLoad];
    
    CGFloat lblY = 100;
    CGFloat lblW = 80;
    CGFloat lblH = 440;
    CGFloat lblX = 100;
    self.lblnew.frame = CGRectMake(lblX, lblY, lblW, lblH);
    
   //macOS  NSTextField的属性按需要选择使用
    _lblnew.editable = NO;//设置是否可以编辑
    _lblnew.bordered = NO; //不显示边框
    _lblnew.backgroundColor = [NSColor greenColor]; //控件背景色
    _lblnew.textColor = [NSColor magentaColor];  //文字颜色
    _lblnew.alignment = NSTextAlignmentCenter; //水平显示方式
    _lblnew.maximumNumberOfLines = 2; //最多显示行数
    _lblnew.stringValue = @"hhh";  //现实的文字内容
    _lblnew.font = [NSFont systemFontOfSize:14];//设置字号大小
    [_lblnew sizeToFit];////自适应大小(改变label的宽度,使其刚刚好可以容纳字符)
  
}

@end

相关