gpt4 book ai didi

objective-c - 选择 NSTextField 时字体更改

转载 作者:太空狗 更新时间:2023-10-30 03:24:35 28 4
gpt4 key购买 nike

我想创建一个带有属性字符串的简单标签。我这样做是这样的:

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;

结果是这样的:

enter image description here

enter image description here

不幸的是,当点击(选择)这个标签时,它看起来像这样:

enter image description here

enter image description here

它在角落处有点粗体和像素化。许多具有不同字符串、大小和颜色的其他标签都会发生这种情况。我该如何解决?!

请注意这些标签嵌套在 nsscrollview -> nstableview -> viewForTableColumn


堆栈选择:

enter image description here我认为问题在于 NSCell 在按下鼠标时调用了编辑功能。


选择时字体也不同!! enter image description here


编辑:

有趣的是,如果我从 (2) 父 View 中删除 wantslayer:YES,它不会执行此操作。但他们都需要 wantslayer 否则我不能有弯角等......

最佳答案

将这一行添加到您的代码中。

NSTextView *textEditor = (NSTextView *)[[[NSApplication sharedApplication] keyWindow] fieldEditor:YES forObject:title_field];

[textEditor setSelectedTextAttributes:noNotificationsAttrs];

从而在选择时将属性添加到与窗口关联的NSTextView。

您现在得到的内容(例如选择后的粗体和字体更改)将被覆盖。

编辑:

工作代码

已将 NSForegroundColorAttributeName 更改为 NSBackgroundColorAttributeName_grey[NSColor clearColor]

NSDictionary *noNotificationsAttrs = [NSDictionary dictionaryWithObjectsAndKeys:centredStyle,
NSParagraphStyleAttributeName,
[NSFont fontWithName:@"Raleway-Bold" size:30],
NSFontAttributeName,
[NSColor clearColor],
NSBackgroundColorAttributeName,
nil];

关于objective-c - 选择 NSTextField 时字体更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45256630/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com