gpt4 book ai didi

objective-c - NSTextField 自定义背景、边框和角

转载 作者:行者123 更新时间:2023-12-03 16:42:33 26 4
gpt4 key购买 nike

我想用 3 张图片绘制自己的 TextField。

  1. input_l.png - 输入的左侧
  2. input_m.png - 输入的中间部分 - 1px 宽 - 应该拉伸(stretch)或相乘以填充中间部分
  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 宽的无边框背景图像来绘制它,并在代码中使角变圆,并以某种方式绘制均匀的边框。不过我仍然想知道如何按照我尝试过的方式进行操作,以供将来使用。

最佳答案

有很多方法可以做到:

子类 NSButton,如果需要,还子类 NSButtonCell 并重写这些方法

  1. -(void)drawRect:(NSRect)矩形{

    }

  2. drawText:withFrame:inView:

  3. drawImage:withFrame:inView:.

关于objective-c - NSTextField 自定义背景、边框和角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13425896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com