【问题标题】:Highlight NSView on Rollover/Click在翻转/单击时突出显示 NSView
【发布时间】:2011-07-06 09:43:27
【问题描述】:

滚动或单击 NSView 时,如何更新视图以便更改视图的颜色和其他属性?重绘视图是我需要做的关键,我已经创建了一个子类。

【问题讨论】:

  • 您如何保留对您观点的引用?您是否有机会使用集合视图?

标签: objective-c cocoa nsview


【解决方案1】:

监听鼠标事件并在其中执行适当的操作。

-(void)mouseEntered:(NSEvent *)theEvent {
    //draw rollover
}

-(void)mouseExited:(NSEvent *)theEvent {
    //draw normal
}

-(void)mouseDown:(NSEvent *)theEvent {
    //draw selected
}

-(void)mouseUp:(NSEvent *)theEvent {
    //draw normal
}

【讨论】:

  • @alexgray:什么不起作用?方法没有被调用?您需要确保您的窗口子类符合NSWindowDelegate
  • -mouseDown 和 -mouseUp 应该像预期的那样工作。但是, -mouseEntered 和 -mouseExited 需要 trackingAreas 才能工作。见stackoverflow.com/a/11190700/388412
猜你喜欢
  • 1970-01-01
  • 2012-06-17
  • 2013-05-20
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
相关资源
最近更新 更多