0

我正在尝试在 Xcode 4.6.3 中创建八个自定义按钮 (NSButton)。这些是圆的部分。我为它们每个都使用了一个标准的矩形按钮,为每个部分添加了一个自定义图像。但是,当我将这些部分放在一个圆圈中时,无法单击其中一些按钮,因为每个按钮周围的矩形区域重叠,并阻止到达另一半按钮。

我想知道是否有任何方法可以使按钮形状至少为三角形,以便我可以单击所有这些按钮?

4

1 回答 1

1

从文档“查看编程指南”中:

注意:出于性能原因,Cocoa 不强制在同级视图之间进行剪辑,也不保证在同级视图重叠时正确的失效和绘制行为。如果你想在另一个视图前面绘制一个视图,你应该使前视图成为后视图的子视图(或后代)。

换句话说,您不能期望重叠视图正确处理鼠标事件。没有办法绕过视图占据矩形框架的事实。您必须创建一个视图来执行所有圆段的工作(包括绘图和事件处理,以及可选的鼠标移动事件)。您将不得不使用三角函数来计算鼠标单击发生在哪个片段中,并通过重新绘制片段并调用所需的操作来做出适当的响应,就像按下按钮一样。

于 2013-07-27T19:07:58.377 回答