- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的意思是,如果用户愿意的话,以允许标准 OS X 外观和自定义外观(从图像文件加载)的方式重写/扩展默认 AppKit 控件会涉及多少工作? (想想 WinAmp 或 Windows Media Player。)有人尝试过将其带到 Mac 上吗?
我了解如何重绘 NSWindow
或按钮单元格,但这都是硬编码的。我想要用户可以添加自己的东西。我有什么选择?
最佳答案
嗯,这确实涉及从头开始重新绘制您需要的所有自定义组件,无论是在代码中还是使用图像。 AppKit 并不适合定制,因为它严格遵循 Apple 的 Human Interface Guidelines ; Apple 希望在所有 native 应用程序中创建一个一致的 UI 隐喻。
这在实践中意味着您将必须进行大量自定义绘图来为您的应用程序设计主题。使用图像使事情变得更容易,但也不会太多。如果你想要一个自定义按钮,你必须创建 NSButton
和 NSButtonCell
的子类来加载你想要的图像并绘制(看看 NSDrawThreePartImage ()
和 NSDrawNinePartImage()
了解如何更轻松地绘制可调整大小的按钮)。要主题 NSWindow
,您必须子类化 NSThemeFrame
,这是一个绘制标准 OS X 窗口外观的半私有(private)类。
本质上,您只需要进行大量子类化即可获得您想要的外观。是否可以?绝对地。是推荐的还是容易做的?没那么多。
<小时/>当然,你得问问这是否真的有必要。 HIG 的目的是尝试在 OS X 上创建一种标准外观。如果做得不够专业,主题外观可能会很俗气,甚至可能会让习惯了默认 OS X 外观的用户感到困惑。如果你想包含 UI 主题,通常需要有一个充分的理由(要么是为了保持跨平台兼容性,但在这种情况下,所有 HIG 规则都不适用;要么是为了实现特定的外观,一个 là 游戏) UI),但我真的不建议这样做,更不用说让用户自己定制你的 UI。
关于objective-c - 为 Mac 创建一个可定制的 GUI 有多难?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259969/
我是一名优秀的程序员,十分优秀!