我想在属性字符串的某些部分上显示工具提示,并认为在所需范围内使用NSToolTipAttributeName属性可以解决这个问题,但我无法使其工作。 我正在尝试使用MACOS,Xcode(9.2)
NSString *fullString = @"Create a new tooltip";
NSString *compareString =@"tooltip";
NSRange tooltipRange = [fullString rangeOfString: compareString];
[senderTextView.textStorage addAttribute:NSToolTipAttributeName
value:@"Custom tooltip"
range:tooltipRange];
[senderTextView.textStorage addAttribute:NSForegroundColorAttributeName
value:[NSColor redColor] range:tooltipRange];
"工具提示"按预期显示为红色,但当我将鼠标悬停在其上时,不会显示工具提示。我错过了什么?
答案 0 :(得分:0)
使用NSToolTipAttributeName
与NSLinkAttributeName
结合使用的方法可以做到这一点,例如:
NSMutableDictionary* labelAttributes = [NSMutableDictionary new];
labelAttributes[NSToolTipAttributeName] = @"Tooltip";
labelAttributes[NSLinkAttributeName] = @"Link";
NSAttributedString* labelString = [NSAttributedString
attributedString:@"Display"]
withAttributes:labelAttributes];
小心不要忘记displaysLinkToolTips = YES
上的NSTextView
。
或者,您可以使用NSView
Tooltips API,其中提供:
- (NSToolTipTag)addToolTipRect:(NSRect)rect owner:(id)owner userData:(void *)data;