如何在自己的窗口中正确托管 PitchShift 音频单元插件?
我正在开发一个托管 Apple 系统提供的音频单元插件的 Mac 应用程序。在新的 OSX 10.7 Lion 中,一些插件更新了视图。PitchShift 就是其中之一。
PitchShift 和其他一些有新的旋钮来改变那里的参数。用鼠标转动旋钮时,旋钮下方会显示一个显示旋钮参数值的水平条。
松开旋钮后,甚至在关闭窗口后,此栏仍会保留在屏幕上。如果我单击其中一个旋钮,从而创建一个流氓值栏,并移动 PitchShift 视图所在的窗口,则该栏将停留在窗口以前所在的位置。如果此时我再次单击旋钮,则会出现一个新的条形图,但两个条形图都会随着不断变化的旋钮参数值信息而主动更新。每次我重复此过程时都会发生这种情况,屏幕上会停留更多条。
发生这种情况几次后,我的应用程序在 main.m 文件中的 NSApplicaionMain() 调用中以错误的访问权限退出。
我检查了逻辑 9,但这并没有发生在那里。该条似乎直接系在旋钮上,因此在您用鼠标松开旋钮后立即消失。
我将 PitchSHift 视图设置为专用 NSWindow 的 contentView。
Logic 如何防止这种情况发生,或者我该怎么做?
我试过查看参数值是否在 PitchShift 视图的子视图中出现,但它们似乎不是。
任何帮助将不胜感激。
编辑:当第一次出现值栏时,我在程序的控制台中得到以下输出: Circle and line do not intersect
所以我发现它正在使用核心动画CALayers。现在的问题是值栏层不是 PitchShiftView 层层次结构的一部分。换句话说,我可以找到构建 pitchShiftView 的所有其他层,但找不到值栏的层。这似乎是整个问题的开始。