【发布时间】:2013-04-18 01:52:21
【问题描述】:
[NSTextView selectedTextAttributes] 的默认值在我的应用程序中不可用,因为我允许用户选择与背景颜色几乎完全相同的颜色(语法突出显示)。
我已经写了一些数学来确定合适的颜色,可以用它来设置它:
textView.selectedTextAttributes = @{
NSBackgroundColorAttributeName: [NSColor yellowColor],
NSForegroundColorAttributeName: [NSColor redColor]
};
但是当窗口在后台时,它仍然使用系统默认的浅灰色。
我附上了上述代码的屏幕截图,其中包含活动和非活动窗口。 — 如何更改非活动窗口的选定文本背景颜色?
【问题讨论】:
-
你是否尝试过继承 NSWindow 并覆盖
resignKeyWindow? -
@CodaFi 这种方法我应该怎么做?我刚刚尝试设置 selectedTextAttirbutes 但它没有任何效果。
-
嗯...检查 NSWindow.h。每当窗口退出/获得关键状态时,您都可以使用大量功能来抓取。您可以从那里分配属性。
-
如果我在 resignKeyWindow 中更改 selectedTextAttributes.NSForegroundColorAttributeName (以及我尝试过的所有其他地方)它可以工作,但更改 NSBackgroundColorAttributeName 没有效果 - 它必须从其他地方获取颜色。
-
您是否尝试在窗口的字段编辑器上设置属性(也是
NSTextView)? Reference here.
标签: objective-c cocoa nstextview