2014-10-08 2 views
0

Я пытаюсь создать очень простой NSTableCellView с текстовым полем и кнопкой. Мой код для макета NSTableCellView ниже. Я хочу, чтобы текстовое поле имело ширину 100 пикселей.Ширина NSTextField внутри NSTableCellView

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item { 

    MyTableCellView *cellView = [outlineView makeViewWithIdentifier:@"MyTableCellView" owner:self]; 

    if (cellView == nil) { 
     cellView = [[MyTableCellView alloc] initWithFrame:NSMakeRect(0, 0, NSWidth(outlineView.bounds), [outlineView rowHeight])]; 

     NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 100, [outlineView rowHeight])]; 
     [cellView addSubview:textField]; 
     cellView.textField = textField; 

     NSButton *button = [[NSButton alloc] initWithFrame:NSMakeRect(108, 0, 50, [outlineView rowHeight])]; 
     [cellView addSubview:button]; 
     cellView.button = button; 

     cellView.identifier = @"MyTableCellView"; 
    } 

    cellView.textField.stringValue = item.stringValue; 

    return cellView; 
} 

Когда я делаю это, однако, NSTextField занимает всю строку:

Что я делаю неправильно?

ответ

0

Я нашел проблему. Я не думал дважды о настройке NSTextField, который я создал для вывода текстового поля NSTableCellView. Оказывается, это не должно быть сделано, потому что тогда оно автоматически изменяется.

Так что я взял эту линию, и она работает, как ожидалось:

cellView.textField = textField; 
Смежные вопросы