
[英]DACircularProgressView in UITableViewCell only visible when selected
[英]NSTextView placeholder text only visible when selected
我目前遇到的问题类似于此SO问题中所述的问题 (当前尚无公认的答案),除非选择了文本字段,否则我的文本字段的占位符文本不可见。
我有子类化NSTextField
(下面的代码):
@interface CustomTextField : NSTextField
@property (nonatomic, strong) IBInspectable NSImage *backgroundImage;
@end
@implementation CustomTextField
- (void)awakeFromNib
{
[self setDrawsBackground:NO];
}
- (void)drawRect:(NSRect)rect
{
NSImage *backgroundImage = self.backgroundImage;
[super drawRect:rect];
[self lockFocus];
[backgroundImage drawInRect:rect fromRect:rect operation:NSCompositeSourceOver fraction:1.0];
[self unlockFocus];
}
@end
我已将Interface Builder中的文本字段的类设置为CustomTextField
,并设置了占位符文本,如下所示:
从下面的屏幕快照中可以看到,仅当选择了文本字段时,占位符文本才可见。
文本字段一:
文本字段二:
是否有人对我如何使占位符文本可见而不管用户是否选择了它? 谢谢!
您将在超类绘制内容之后绘制背景图像。 因此,您可能正在使用超类绘制的内容进行替换。
大概应该先绘制背景图片,然后再调用super。 另外,您不应在-drawRect:
锁定焦点(或解锁焦点)。 框架已经为您做到了。
当您的文本字段具有焦点时显示占位符的原因是,您实际上看到的是字段编辑器,而不是此时的文本字段。 字段编辑器是NSTextView
的实例(“视图”,而不是“字段”),已插入到文本字段顶部的视图层次结构中以处理文本编辑职责。 因此,当文本字段具有焦点时,自定义类将其绘制为无关紧要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.