【问题标题】:Setting UIMenuController arrow direction not working设置 UIMenuController 箭头方向不起作用
【发布时间】:2012-03-21 03:34:13
【问题描述】:

我有一个UIMenuController,我在其中添加了一些额外的项目。我希望菜单位于我选择的文本下方,所以我尝试了:

[UIMenuController sharedMenuController].arrowDirection = UIMenuControllerArrowDown;

这似乎什么也没做,而且我尝试的一切都不会将菜单放在文本下方。

我该怎么做?

【问题讨论】:

  • 不会将箭头方向向下,让它呈现向上吗?

标签: objective-c ios cocoa-touch uimenucontroller


【解决方案1】:

根据docsarrowDirection设置箭头指向的方向;它与菜单相对于其目标区域的位置无关。除了setTargetRect:inView之外,它们似乎也无法让您控制菜单的位置。

如果您真的想将菜单放在文本下方,您可以设置一个“假”目标区域,并将箭头方向更改为指向“真实”感兴趣区域。

不过,Apple 这样做可能是有原因的。我猜?如果您用手指选择一些文本,您的手可能会遮住文本下方的屏幕部分......因此,如果菜单出现在那里,这不是很有帮助。竭尽全力打破与标准 UI 约定的一致性通常是不值得的。

【讨论】:

  • 是的,但就我而言,我需要选择一些文本,然后从导航栏中选择一个按钮,该按钮被 UIMenuController 覆盖。