Конвертировать NSTextField в метку

Я использую следующие функции для преобразования текстового поля в метку и наоборот

-(void)convertLabelToTextField : (NSTextField *)Inlabel
{
    [Inlabel setBezeled:YES];
    [Inlabel setDrawsBackground:YES];
    [Inlabel setEditable:YES];
    [Inlabel setSelectable:YES];
}

-(void)convertTextFieldToLable : (NSTextField *)textField
{

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

}  

Но мой интерфейс не соответствует.

  • Начальная метка

  • Метка в текстовое поле

  • Текстовое поле для метки (после выбора текста)

  • Метка в текстовое поле

Может кто-нибудь, пожалуйста, помогите мне.

2 ответа

Решение

Culprit был высотой метки по умолчанию.

метка высота по умолчанию

NSTextField Высота по умолчанию

высота текстового поля

ниже код для метки с высотой 22

NSTextField *textField;

textField = [[NSTextField alloc] initWithFrame:NSMakeRect(10, 10, 100, 22)];
[textField setStringValue:@"My Label"];
[textField setBezeled:NO];
[textField setDrawsBackground:NO];
[textField setEditable:NO];
[textField setSelectable:NO];

Попробуйте установить маску изменения размера

[textField setAutoresizingMask: NSViewMinXMargin | NSViewWidthSizable | NSViewMaxXMargin | NSViewMinYMargin | NSViewHeightSizable | NSViewMaxYMargin];

Смотрите этот ответ

Другие вопросы по тегам