Xcode doesn't recognize NSLabel Xcode doesn't recognize NSLabel xcode xcode

Xcode doesn't recognize NSLabel


There is no label class (NSLabel) on OS X. You have to use NSTextField instead, remove the bezel and make it non editable:

[textField setBezeled:NO];[textField setDrawsBackground:NO];[textField setEditable:NO];[textField setSelectable:NO];


Swift 4.2 🔸

open class NSLabel: NSTextField {    override init(frame frameRect: NSRect) {      super.init(frame: frameRect)      self.isBezeled = false      self.drawsBackground = false      self.isEditable = false      self.isSelectable = false    }}


I had the same question, following DrummerB advice I created this NSLabel class.

Header

////  NSLabel.h////  Created by Axel Guilmin on 11/5/14.//#import <AppKit/AppKit.h>@interface NSLabel : NSTextField@property (nonatomic, assign) CGFloat fontSize;@property (nonatomic, strong) NSString *text;@end

Implementation

////  NSLabel.m////  Created by Axel Guilmin on 11/5/14.//#import "NSLabel.h"@implementation NSLabel#pragma mark INIT- (instancetype)init {    self = [super init];    if (self) {        [self textFieldToLabel];    }    return self;}- (instancetype)initWithFrame:(NSRect)frameRect {    self = [super initWithFrame:frameRect];    if (self) {        [self textFieldToLabel];    }    return self;}- (instancetype)initWithCoder:(NSCoder *)coder {    self = [super initWithCoder:coder];    if (self) {        [self textFieldToLabel];    }    return self;}#pragma mark SETTER- (void)setFontSize:(CGFloat)fontSize {    super.font = [NSFont fontWithName:self.font.fontName size:fontSize];}- (void)setText:(NSString *)text {    [super setStringValue:text];}#pragma mark GETTER- (CGFloat)fontSize {    return super.font.pointSize;}- (NSString*)text {    return [super stringValue];} #pragma mark - PRIVATE- (void)textFieldToLabel {    super.bezeled = NO;    super.drawsBackground = NO;    super.editable = NO;    super.selectable = YES;}@end

You'll need to #import "NSLabel.h" to use it, but I think it's more clean.