Sitution:带有音乐应用界面的新手。我有2个大图像,一个是主“向上”或普通视图,另一个是完整的“向下”视图。 (按钮全部按下,点亮等,LED指示灯等)。可能还有一些较小的图像也可以复制。
在Carbon和旧的Mac OS中,我会为每个图像加载2个GWorlds,然后使用Copybits复制根据需要单击按钮的任何子项,并根据窗口进行blit。
虽然我认为我仍然可以在Cocoa中使用这种方法,但它已被弃用,现在是时候了:
问:在Cocoa中用旧的Copybits方法代替什么? (相当简单的是先前的):)重申,在Cocoa中做类似的最好的(也是最好的新手)方法是什么...用于将图像和各种子图形制作成图形工作按钮?处理点击次数?这里的目标示例:类似于GarageBand等,或任何漂亮的VST乐器界面,它们复制模拟经典(穆格等)基本上,拍摄合成器的图像并使'按钮'和旋钮工作可可。
我以为我需要NSView和一些Quartz,然后在这里阅读,或许会想到NSOpenGLView。那我也许读过NSButtonCell?使图像成为自定义控件?需要相对快速,因为很多MIDI I / O和处理可能同时进行。
答案 0 :(得分:2)
如果你想“走向现代”,那就去完全现代......
具体来说,用一堆NSButton,NSSliders等设置您的界面。等等...然后通过使用按钮的自定义开/关图像来查看您可以走多远。对于滑块,您可能想要创建一个子类,然后覆盖绘图方法。
各种NSControl课程为您提供了与事件跟踪和用户体验相关的大量繁重工作。除非你真的,真的不得不重新发明那个轮子。
它们也被设计为子类化并随意定制。
至于表现,它可能会很好。音频应用程序的问题通常不是原始CPU性能,而是延迟。无论如何,您都希望将音频处理从主事件循环中推出。
从简单开始,查看您可以获得多远,然后根据需要自定义UI。只要您智能地构建应用程序,就不应该在执行此操作时丢弃太多代码。