无法在NSRunAlertPanel中显示%

时间:2010-12-21 11:24:45

标签: nsstring nsrunalertpanel

我正在开发一个桌面应用程序,我希望使用NSRunAlertPanel在警报面板中显示一条消息。 我正在做以下事情:

NSString *title = @"% Test";
NSString *message = @"% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);

警报面板正确显示标题。即%测试 但是,消息是消息;我想显示%Test Message。

如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

NSString *title = @"% Test";
NSString *message = @"%% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);

为什么?

NSRunAlertPanel使用NSBeginAlertSheet。查看documentation for NSBeginAlertSheet,您可以看到msg后面有更多参数(由...指定)。

这告诉我们标题只是字面上显示的字符串,但消息的格式参数与[NSString stringWithFormat:]的格式参数相同。

字符串指定将存在参数的方式是使用%字符,即%i表示'在此处放置一个整数',%@表示'放置一个对象在这里的描述'。你只是把它自己放了一个%,这让事情变得很困惑!

双倍%%意味着这个百分比不是我告诉你我希望你在那里放一些特别的东西,我真的只想要那个%。