题
我有一个带有附件视图和三个按钮的NSAlert,按钮未向右对齐(对于LTR系统),但似乎扩展到附件视图的宽度,如下所示
还删除了附件视图,这三个按钮在右侧没有正确对齐
如何解决此问题?我不想替换自己编写代码的NSAlert,为什么我必须重新发明轮子?
我使用的代码由 setAccessoryView 文档,并在下面进行了报道 通用标签
解决方案
这是警报的当前默认布局。具有三个按钮的警报的处理方式有所不同,因为其常见用例为:
- 第一个按钮(例如,确定)表示确认
- 第二个按钮(例如“取消”)表示取消
- 第三个按钮(例如杀死企鹅)代表另一种动作,可能是破坏性的动作。
第三个按钮位于左侧,以使其清楚地表示不同于前进(第一个按钮)和停止(第二个按钮)的动作。
这在某些Apple应用程序中可以看到。在页面中:
在TextEdit中:
此外, NSAlert的文档指出:
标准警报布局可能会在将来的系统软件版本中更改。因此,如果您依赖自定义警报布局,则应确保布局能在Mac OS的将来版本中按预期工作。
因此,他们将来可能会决定将所有三个按钮向右对齐,或者仅将第一个按钮向右对齐,将其余两个按钮向左对齐。这就解释了为什么NSAlert不提供公共API来指定其按钮的位置或对齐方式。
如果您确实需要其他布局,则看起来必须自己设计。
不隶属于 StackOverflow