【问题标题】:How do I set the text in the title bar of an NSAlert modal dialog如何在 NSAlert 模式对话框的标题栏中设置文本
【发布时间】:2019-05-10 19:57:20
【问题描述】:

我从 MacOS 下的 Swift 和 Cocoa 开始,我正在编写一个带有 NSAlert 模态对话框的简单 Hello World 应用程序。现在,这些对话框在标题栏中没有标题似乎是标准的,我发现这是有问题的,因为用户应该知道这个对话框属于哪个应用程序。因此,我想在此标题栏中显示应用程序的标题,但我在 NSAlert 类中看不到任何处理该问题的方法。有人可以帮忙吗?

这是我在按下按钮时调用的警报函数。

func ShowMessage(question: String, text: String) -> Void
{
    let alert: NSAlert = NSAlert()
    alert.messageText = question
    alert.informativeText = text
    alert.runModal()
}

【问题讨论】:

    标签: swift cocoa nsalert


    【解决方案1】:

    警报中有您应用的图标,因此很容易知道这是什么应用。如果您愿意,您可以随时在文本中使用应用名称。如果您要使用 NSAlert,您真的无能为力。您的另一个选择是制作自己的窗口并以模态方式运行它;例如,请参阅Creating a fully customized NSAlert

    【讨论】:

    • 感谢您的光临。在 stackoverflow 上的另一个问题中,我看到可以调整 NSAlert 窗口的大小:stackoverflow.com/questions/14820335/nsalert-resize-window?rq=1 那么,是否也可以设置标题栏的文本?
    • 是的,但这只是骇客。我的意思是您可以尝试使用警报窗口,但我认为它不会起作用。 NSAlert 方便、简单且标准,Apple 并不真正希望你弯曲它。 :)
    • 您可以像设置任何其他警报窗口属性一样设置标题 - 设置警报 window 标题,例如alert.window.title = whatever.
    • @matt 实际上,我并不关心 Apple 想让我做什么或不做什么。如果我认为图标不足以识别位于对话框后面的应用程序,那么这就是我(即程序员)的合法观点。我看到应该遵循一定的标准,但是在这种情况下,我认为这种思维方式太狭隘了。
    • @red_menace 谢谢。实际上,我只是自己发现的。
    猜你喜欢
    • 2012-07-12
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多