2013-08-15 4 views
3

У меня есть пользовательский NSTextFieldCell, который я хочу установить на NSTextField.
Если я установил его на IB, он отлично работает.Настройка ячейки на NSTextField

enter image description here

И это получает это работает так:

enter image description here

Но я хочу, чтобы установить его программно и я попробовать что-то вроде этого:

-(void)awakeFromNib{ 

    NSRect theRect = NSRectFromCGRect(NSMakeRect(50, 100, 100, 100)); 
    NSTextField *inputField = [[NSTextField alloc] initWithFrame:theRect]; 
    DRKHUDTextFieldCell *theC = [[DRKHUDTextFieldCell alloc] initTextCell:@"textfield"]; 
    [inputField setCell:theC]; 

    [[_window contentView] addSubview:inputField]; 

    } 

Это результате я получаю:

enter image description here

Что происходит не так? Мой код плохой или что?

+0

Вы нашли решение? – adev

ответ

0

Попробуйте этот путь, он работает отлично:

NSRect theRect = NSRectFromCGRect(NSMakeRect(50, 100, 100, 100)); 

    NSTextField *inputField = [[NSTextField alloc] initWithFrame:theRect]; 

    NSTextFieldCell *theC = [[NSTextFieldCell alloc] initTextCell:@"textfield"]; 

    [inputField setCell:theC]; 

    [inputField setBordered:YES]; 

    [inputField setBackgroundColor:[NSColor whiteColor]]; 

    [inputField setBezeled:YES]; 

    [inputField setBezelStyle:0]; 

    [[_window contentView] addSubview:inputField]; 
1

Вот рабочий раствор в стрижа. Вышеуказанный ответ C не был полным и, следовательно, не работал для меня.

let cell = CustomTextFieldCell(textCell: "") 
self.cell = cell 
self.isBordered = true 
self.backgroundColor = .white 
self.isBezeled = true 
self.bezelStyle = .squareBezel 
self.isEnabled = true 
self.isEditable = true 
self.isSelectable = true 

Вам необходимо сбросить все свойства, если заменить cell собственность. Это значения по умолчанию, попробуйте установить собственные значения, соответствующие вашему делу.

+0

эй, мне было три года, я даже не помню, что я пытался сделать. Спасибо за ваше время, хотя это может помочь кому-то другому. – ozmax

+0

@ozmax, спасибо. Пожалуйста, примите ответ, чтобы люди знали, что есть рабочее решение – adev