是否可以删除标签中的文字(NSTextField
)?
我尝试使用字体面板,但显然当我尝试设置它们时会忽略它们:
答案 0 :(得分:6)
你可以这样做,假设{x}被设置为xib中的插座:
_textField
编辑:
如果您想要编写自定义删除线- (void) awakeFromNib
{
NSMutableAttributedString *as = [[_textField attributedStringValue] mutableCopy];
[as addAttribute:NSStrikethroughStyleAttributeName value:(NSNumber *)kCFBooleanTrue range:NSMakeRange(0, [as length])];
[_textField setAttributedStringValue:[as autorelease]];
}
子类,则唯一需要覆盖的方法是NSTextFieldCell
setStringValue:
答案 1 :(得分:1)
对我而言,通过创建自定义NSTextFieldCell
和覆盖drawInteriorWithFrame:inView:
的方法结合起来非常有效,如下所示:
- (void) drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
[self setAttributedStringFromStringValue];
[super drawInteriorWithFrame:cellFrame inView:controlView];
}
- (void) setAttributedStringFromStringValue { // add strikethrough
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:self.stringValue];
[attributedString addAttribute:NSStrikethroughStyleAttributeName value:(NSNumber *)kCFBooleanTrue range:NSMakeRange(0, attributedString.length)];
[self setAttributedStringValue:attributedString];
}