【问题标题】:Adding Disclosure button and NSTextView to NSAlert将披露按钮和 NSTextView 添加到 NSAlert
【发布时间】:2011-02-18 08:23:45
【问题描述】:
我想显示一个带有附件视图的 NSAlert。附件视图需要:
1) NSExView 用于显示强制内容
2) 带有 NSTextView 的披露按钮
Disclosure 按钮是隐藏和显示第二个 NSTextView 所必需的。但是,同时我希望 NSAlert 对话框调整大小以适应内容。
Cocoa 中的“保存”对话框有一个披露按钮,基本上可以做到这一点,我想要与 NSAlert 相同的功能。
有什么建议吗?
【问题讨论】:
标签:
objective-c
cocoa
macos
nsalert
【解决方案1】:
给你:
1) NSAlert 有一个窗口属性。因此使用它。
2) 创建一个包含两个 NSTextView 和一个显示三角形的自定义附件视图
3) 将此自定义视图设置为 NSAlert 的附属视图
4) 在显示警报之前,在您的自定义视图中设置 NSAlert 的 window 属性(这样您就可以在单击显示三角形时访问 NSAlert 的窗口)
5) 为展开按钮事件添加目标并保存状态(展开/折叠)
6) 在显示三角形点击事件中:使用 NSAlert 保存的窗口框架来调整 NSAlert 的高度、大小和宽度。
7) 这里重要的是要注意 - 当您调整高度时,NSAlert 从顶部开始增长,因此您需要相应地移动“原点”。
希望这会有所帮助:)。我不得不花整个周末来弄清楚如何做到这一点:D。
顺便说一句,只是出于好奇,您正在从事哪个项目或公司?