Cocoa NSRunAlertPanel不适用于Tiger,但适用于Leopard和SnowLeopard

Cocoa NSRunAlertPanel不适用于Tiger,但适用于Leopard和SnowLeopard,cocoa,nsrunalertpanel,Cocoa,Nsrunalertpanel,我目前正在使用NSRunAlertPanel显示一个对话框 在Leopard和SnowLeopard中效果非常好。在Tiger中,除图标外,它也起作用 在Leopard和Snow Leopard中,我用于应用程序的图标显示在字符串的左侧。这是预期的行为 然而,在Tiger中,字符串的左侧有一个很大的空白,图标缺失,但图标的间隙存在 下面是我如何使用代码的: NSRunAlertPanel(@"My Application", @"My Application's string contents"

我目前正在使用
NSRunAlertPanel
显示一个对话框

在Leopard和SnowLeopard中效果非常好。在Tiger中,除图标外,它也起作用

在Leopard和Snow Leopard中,我用于应用程序的图标显示在字符串的左侧。这是预期的行为

然而,在Tiger中,字符串的左侧有一个很大的空白,图标缺失,但图标的间隙存在

下面是我如何使用代码的:

NSRunAlertPanel(@"My Application", @"My Application's string contents", @"OK", nil, nil);

我真的需要知道为什么会这样。我没有为leopard and snow中出现的图标添加任何代码,但它已经存在。

从Mac OS X 10.0开始,可以使用
NSRunAlertPanel
功能。我在代码中看到的唯一问题是,您正在将C字符串传递给需要对象的函数。

对不起,它应该是:NSRunAlertPanel(@“我的应用程序”,“我的应用程序的字符串内容”,“确定”,“无,无”);我只是忘了在线程中写“@”。谢谢。根据提问者的评论,整理代码示例以显示NSStrings而不是c字符串。
NSRunAlertPanel()
早已被
NSAlert
取代。试试看怎么样?