1

所以,我有这个 mouseEntered 事件,如果我鼠标进入一个 trackingArea,它将显示一个标签。但是,根据输入的 trackingArea,我想为标签设置一个自定义字符串。

主要问题是:如何获取输入的 trackingArea。

这是我的代码:

-(void)mouseEntered:(NSEvent *)theEvent
{
   if([theEvent trackingArea] isEqual: -- to my trackingArea --)
   {
       [self.label setStringValue:@"Test"];
   }
}
4

1 回答 1

0

对我来说,这听起来像是意大利面条代码的开始......

即:在一个视图中检查某些内容是否由另一个视图触发 - 我想您正在尝试实现某种在线帮助系统,其中包含一些要为各种视图/控件显示的文本。在这种情况下,您可能很容易得到一个巨大的 if-then-else 块和几十个要检查的视图。

无论如何,我建议使用不同的方法并在代码中 采用松散耦合:

让实际拥有跟踪区域的视图发送带有它希望其他人显示的字符串的通知怎么样?

这样视图不需要相互了解,不需要设置实例变量来指向彼此,等等 - 只是有人发送的通知,其他人会听。

干净、可维护、易于扩展。

于 2014-01-08T18:54:16.687 回答