テキストフィールドをラベルに、またはその逆に変換するために次の関数を使用しています
-(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];