/ / NSTextFieldをラベルに変換 - 客観的c、macos、ココア、nstextfield、nstextfieldcell

NSTextFieldをLabelに変換する - objective-c、macos、cocoa、nstextfield、nstextfieldcell

テキストフィールドをラベルに、またはその逆に変換するために次の関数を使用しています

-(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];

}

しかし、私のUIは一貫していません。

  • 初期ラベル

ここに画像の説明を入力

  • テキストフィールドへのラベル付け

ここに画像の説明を入力

  • ラベルへのテキストフィールド(テキスト選択後)

ここに画像の説明を入力

  • テキストフィールドへのラベル付け

ここに画像の説明を入力

ここに画像の説明を入力

誰か助けてください。

回答:

回答№1の場合は3

犯人は、ラベルのデフォルトの高さでした。

ラベルデフォルトの高さ

ここに画像の説明を入力

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];

回答№2の場合は0

リサイズマスクを設定してみてください

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

この回答を見る