2

3枚の絵で自分のTextFieldを描きたいです。

  1. input_l.png-入力の左側
  2. input_m.png-入力の中央部分-1px幅-中央部分を埋めるためにストレッチまたは乗算することになっています
  3. input_r.png-右側

すべての画像には、境界線、背景、影が含まれています。これらの画像だけで描画するために必要なものはすべて含まれています。

しかし、NSTextFieldのサブクラスとこれらのメソッドでそれを描くことはできません:

- (void)awakeFromNib
{
    [self setDrawsBackground:NO];
}

- (void)drawRect:(NSRect)rect
{
    NSDrawThreePartImage(rect, [NSImage imageNamed:@"input_l.png"], [NSImage imageNamed:@"input_m.png"], [NSImage imageNamed:@"input_r.png"], NO, NSCompositeSourceOut, 1.0, NO);

    [super drawRect:rect];
}

テキスト/プレースホルダーで黒い背景を描画します。

これはそれがどのように見えるべきかです:http: //d.pr/i/VLEN

他に方法がある場合は、これを描画するために教えてください:)これを描画するために、境界線のない1px幅の背景画像を使用でき、コードで角を丸くして、どういうわけか境界線を均​​等に描画できることに気づきました。しかし、将来の使用のために、私が試した方法でそれを行う方法をまだ知りたいです。

4

1 に答える 1

1

行うには多くの方法があります:

NSButtonをサブクラス化し、必要に応じてNSButtonCellもサブクラス化し、これらのメソッドをオーバーライドします

  1. -(void)drawRect:(NSRect)rect {

    }

  2. drawText:withFrame:inView:

  3. drawImage:withFrame:inView:。

于 2012-11-17T03:10:57.563 に答える