Cocoa 根据窗口状态设置视图背景色
在许多应用程序(例如邮件)中使用的标准源代码视图样式侧栏在窗口处于活动状态时为蓝色,在其处于非活动状态时为蓝色-跟随标题栏的状态更改 出于各种原因,我开发了一个自定义侧栏,但仍然希望在背景中使用相同的效果 其想法是制作一个填充背景的自定义Cocoa 根据窗口状态设置视图背景色,cocoa,cocoa-design-patterns,Cocoa,Cocoa Design Patterns,在许多应用程序(例如邮件)中使用的标准源代码视图样式侧栏在窗口处于活动状态时为蓝色,在其处于非活动状态时为蓝色-跟随标题栏的状态更改 出于各种原因,我开发了一个自定义侧栏,但仍然希望在背景中使用相同的效果 其想法是制作一个填充背景的自定义NSView,并将其用作侧栏的背景。我给了它一个我想要设置的属性“active”,draw方法用两个不同的渐变填充rect 现在,问题是:将这样一个视图与窗口状态挂钩的最佳方式是什么 苹果在邮件应用程序中使用的这个“侧栏”是一个NSOutlineView。在界面
NSView
,并将其用作侧栏的背景。我给了它一个我想要设置的属性“active”,draw方法用两个不同的渐变填充rect
现在,问题是:将这样一个视图与窗口状态挂钩的最佳方式是什么 苹果在邮件应用程序中使用的这个“侧栏”是一个NSOutlineView。在界面生成器中,也可以通过将属性“Highlight”设置为“Source list”来使用此样式
如果您想制作自己的侧边栏,您可以收听和委派。有很多方法可以报告它们的状态 谢谢你的回答!我想我的怀疑是收到通知的最好方式。我的直觉告诉我,它应该在视图或控制器的层次结构中逐步渗透,让侧栏控制器直接注册以接收来自上层实体(如窗口或应用程序)的通知对我来说似乎有点像一条捷径。但也许这就是解决问题的方法?我只是把你的边栏作为观察者添加到通知中。例如:[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(yourMethod:)name:NSApplicationIDResignActiveNotification对象:nil];