【问题标题】:Cocoa : Subviews appearence within inactive windowCocoa:非活动窗口中的子视图外观
【发布时间】:2016-03-11 12:45:27
【问题描述】:

当应用程序窗口处于活动状态时(关闭按钮为红色,窗口标题为黑色),子视图(NSTabViews、滚动条..)以蓝色显示活动元素。但是当应用程序处于非活动状态时(关闭按钮和窗口标题为灰色),子视图将活动元素显示为灰色。这是带有主窗口滚动条的 Xcode 的行为。

但是像字符查看器这样的应用程序有不同的行为。当它们处于非活动状态时(另一个应用程序窗口处于活动状态并具有焦点),子视图将活动元素保持为蓝色。

我们如何获得这种行为?

注意:我在没有 Interface Builder 的情况下工作。

谢谢

【问题讨论】:

  • NSPanel 是你要找的吗?
  • 我使用的是 NSWindow,但我可以用 NSPanel 替换它。你知道用 NSPanel 获得这种行为的方法吗?

标签: cocoa window focus subview nstabview


【解决方案1】:

参见 NSColor.h

其中带有“inactive”一词的颜色用于在窗口处于非活动状态时绘制 Nscontrols。我的 Nscell 子类调用 [[[self controlview] window] iskeywindow] 然后选择合适的颜色进行绘制。

【讨论】:

  • 如果我理解你的答案,当窗口变为 keyWindow 时,我需要将所有 NSControl 子类化以设置其颜色?我不认为 Apple 程序员或其他人会花时间制作所有 NSControls 的子类。我不想使用特定的颜色,我只想让我的 NSControl 在窗口处于非活动状态时保持蓝色外观。可能有一个全局属性可以实现这一点。
猜你喜欢
  • 1970-01-01
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多