Я хочу создать простую метку с атрибутной строкой. Я делаю это вот так:
NSDictionary *noNotificationsAttrs = [NSDictionary dictionaryWithObjectsAndKeys:centredStyle,
NSParagraphStyleAttributeName,
[NSFont fontWithName:@"Raleway-Bold" size:30],
NSFontAttributeName,
_grey,
NSForegroundColorAttributeName,
nil];
NSMutableAttributedString *noNotificationsString =
[[NSMutableAttributedString alloc] initWithString:@"No Notifications"
attributes:noNotificationsAttrs];
NSTextField* title_field = [[NSTextField alloc] initWithFrame:
CGRectMake(
0,
0,
200,
200
)
];
[title_field setWantsLayer:true];
[title_field setSelectable:YES];
[title_field setAllowsEditingTextAttributes:true];
[title_field setAttributedStringValue:noNotificationsString];
[title_field setEditable:false];
[title_field setBordered:false];
title_field.tag = 1;
Что получится так:
и
К сожалению, при нажатии (выборе) этого ярлыка это выглядит следующим образом:
и
Это немного смелее и пиксельно вокруг углов. Это происходит с множеством других ярлыков с разными строками, размерами и цветами. Как я могу исправить?!
Обратите внимание, что эти метки вложены внутри nsscrollview
→ nstableview
→ viewForTableColumn
Стек на выбор:
Я считаю, что проблема заключается в том, что NSCell вызывает функцию редактирования в mousedown.
Шрифт также отличается при выборе!
Изменить:
Интересно, если я удалю wantslayer:YES
из родительского представления (2), он этого не сделает. Но они оба нуждаются в wishlayer, иначе я не могу иметь изогнутые углы и т.д.