0

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

-(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 は一貫していません。

  • 初期ラベル

ここに画像の説明を入力

  • テキストフィールドにラベルを付ける

ここに画像の説明を入力

  • ラベル付けするテキストフィールド (テキストを選択した後)

ここに画像の説明を入力

  • テキストフィールドにラベルを付ける

ここに画像の説明を入力

ここに画像の説明を入力

誰でも私を助けてください。

4

2 に答える 2

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];
于 2013-07-05T10:48:49.953 に答える
0

リサイズマスクを設定してみる

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

この回答を参照してください

于 2013-07-02T10:25:18.967 に答える