【问题标题】:Objective-C NSScrollView Foreground ColourObjective-C NSScrollView 前景色
【发布时间】:2015-07-20 17:25:18
【问题描述】:

我正在从事应用程序开发,刚刚开始使用 NSScrollViews 来显示大块文本。

我可以通过编写以下内容来设置背景颜色:

[_HeadersScrollView setBackgroundColor:[NSColor darkGrayColor]];

但不要通过执行类似的操作来设置前景色:

[_HeadersScrollView setTextColor:[NSColor whiteColor]]; // nope
[_HeadersScrollView setForegroundColor:[NSColor whiteColor]]; // nope
[_HeadersScrollView setForeground:[NSColor whiteColor]]; // nope

有没有一种方法或任何其他方式可以让这种类型的设置工作?我真的很感激。

【问题讨论】:

  • 滚动视图没有前景色,因为它不在前景中。这是一个容器。如果它绘制在包含的视图前面,您将无法看到它们。您希望前景色会产生什么影响?也许您正在使用滚动视图中的文本视图 (NSTextView),并且您想要影响它。您可以在 NSTextView 上调用 -setTextColor:(它继承自 NSText)。
  • 我不确定。我输入“NSTextView”并将它拖到我的 NSViewController 中,它神奇地变成了 NSScrollView。我就随它去了。
  • NSScrollView 包含一个 NSClipView(滚动助手),其中包含 NSTextView。如果你想对文本视图进行操作,你要么需要一个出口,要么你可以从滚动视图中请求documentView

标签: objective-c macos nsscrollview nscolor


【解决方案1】:

NSScrollView 包含一个 NSClipView(滚动助手),其中包含 NSTextView。如果你想对文本视图进行操作,你要么需要一个出口,要么你可以从滚动视图中请求documentView

您可以:

[_HeadersScrollView.documentView setTextColor:[NSColor whiteColor]];

或者,如果您有文本视图的出口(在我的示例中称为 _textView),您可以这样做:

 _textView.textColor = [NSColor whiteColor];

在这种情况下,您可能还想在文本视图上设置背景颜色,而不是滚动视图。并通过设置drawsBackground 告诉它绘制背景。

【讨论】:

  • 正是我需要的。感谢您向我解释NSScrollView! :)
【解决方案2】:

在滚动视图中没有这样的设置来改变前景色。

_HeadersScrollView.tintColor = [NSColor whiteColor];

[_HeadersScrollView setTintColor:[NSColor whiteColor]];

【讨论】:

  • 在制作 mac 应用程序时,xcode 中没有 NSTextView 可能是有原因的吗?为什么只有 nsscrollview?
  • 哦,您的代码不起作用。方法不存在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
相关资源
最近更新 更多