我有一个工具提示:
cellView.textField.toolTip = cellView.textField.stringValue;
它总是显示,但我只需要在文本被剪辑时显示工具提示......我怎样才能实现它?
我有一个工具提示:
cellView.textField.toolTip = cellView.textField.stringValue;
它总是显示,但我只需要在文本被剪辑时显示工具提示......我怎样才能实现它?
我认为您可以通过实现文本字段委托方法 controlTextDidEndEditing 并检查文本大小来做到这一点。我发现 sizeWithAttributes: 返回的大小与填充文本字段时预期的大小不匹配,因此我只是凭经验确定了 if 语句所需的值(在此示例中,我绑定了文本字段的值到一个属性,theText)。
-(void)controlTextDidEndEditing:(NSNotification *)obj {
NSLog(@"%@",NSStringFromRect([obj.object frame]));
NSDictionary *dict = [NSDictionary dictionaryWithObject:[NSFont systemFontOfSize:13] forKey:@"NSFontAttributeName"];
NSSize size = [theText sizeWithAttributes:dict];
NSLog(@"%@",NSStringFromSize(size));
if (size.width >69) {
[obj.object setToolTip:theText];
}
}