Flex AIR 3.4 应用程序在 OSX 上崩溃:*** 警告:方法 setMnemonicLocation:在类 AIR_PlayerContentMenuItem 中已过时
Posted
技术标签:
【中文标题】Flex AIR 3.4 应用程序在 OSX 上崩溃:*** 警告:方法 setMnemonicLocation:在类 AIR_PlayerContentMenuItem 中已过时【英文标题】:Flex AIR 3.4 app crashes on OSX: *** WARNING: Method setMnemonicLocation: in class AIR_PlayerContentMenuItem is obsolete 【发布时间】:2012-11-06 21:13:27 【问题描述】:有人在 OSX 上遇到过 FlexNativeMenu 的问题吗?我的应用程序已准备好沙盒,并已获得 Mac App Store 的批准。我正在使用 Flash Builder 4.6 和 AIR 3.4 SDK。并非所有计算机都发生崩溃,但控制台警告会发生。
我尝试使用 xml/e4x 和对象数组作为数据提供者。我尝试过使用和不使用 keyEquivalents。即使是最简单的菜单也会导致错误。 Mac 控制台报告的完整错误信息是:
"* 警告:方法 setMnemonicLocation:在类 AIR_PlayerContentMenuItem 中已过时,将在版本 GM 中删除 *"
如果从源中删除 FlexNativeMenu,应用程序将在沙盒中运行而不会出错。
///
我确实在 Mac 开发人员库中找到了以下似乎相关的内容:这让我认为 AIR 3.4 SDK 正在调用已弃用的方法。
setMnemonicLocation: 已弃用。在要加下划线的位置设置菜单项标题的字符。 (在 OS X v10.6 中已弃用。)
(void)setMnemonicLocation:(NSUInteger)location 参数 地点 标题字符数组的整数索引。位置必须是从 0 到 254。 讨论 此字符标识用户可以用来访问菜单项的访问键。可用性 在 OS X v10.0 及更高版本中可用。 在 OS X v10.6 中已弃用。 也可以看看 – 助记符位置 宣布于 NSMenuItem.h
【问题讨论】:
我有点困惑,标题写着 3.4 但你的问题正文说你使用 SDK 3.5,你使用的是哪个版本的 AIR SDK? 感谢您的评论。我已将正文更正为 AIR 3.4 SDK。 不确定 AIR 3.5 是否会有所帮助,它只是成功了。 Adobe 最近一直忙于更新 Air。 尝试更新到 AIR 3.5 并没有解决问题。 【参考方案1】:我发现的唯一解决方法是使用 NativeMenu 而不是 FlexNativeMenu 来实现菜单。这完全消除了 OS X 控制台中的 setMmemonicLocation WARNING。
【讨论】:
以上是关于Flex AIR 3.4 应用程序在 OSX 上崩溃:*** 警告:方法 setMnemonicLocation:在类 AIR_PlayerContentMenuItem 中已过时的主要内容,如果未能解决你的问题,请参考以下文章
从 flex (air) 将文档与 OpenOffice 合并
从带有AIR SDK 3.9的Adobe Flex SDK 4.6迁移到带有AIR SDK 3.9的Apache Flex SDK 4.12.0