Ошибка отображения% в NSRunAlertPanel - PullRequest
0 голосов
/ 21 декабря 2010

Я разрабатываю настольное приложение, в котором я хочу показать сообщение на панели оповещений с помощью NSRunAlertPanel.Я делаю следующее:

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

На панели предупреждений правильно отображается заголовок.т. е.% Test Но сообщение является est Message;Я хочу отобразить% Test Message.

Как мне решить эту проблему?

Заранее спасибо.

1 Ответ

0 голосов
/ 21 декабря 2010

Попробуйте:

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

Почему?

NSRunAlertPanel использует NSBeginAlertSheet.Глядя на документацию для NSBeginAlertSheet , вы можете увидеть, что после msg есть больше параметров (указанных ...).

Это говорит о том, что title - это просто строка, отображаемая буквально, носообщение может иметь параметры формата так же, как [NSString stringWithFormat:].

Способ, которым строка определяет наличие параметра, заключается в использовании символа%, т. е.% i означает '.целое число здесь ',% @ означает' поместите описание объекта здесь '.Вы только что поместили% сам по себе, что очень запутанно!

Двойной %% означает, что этот процент не означает, что я говорю вам, что я хочу, чтобы вы добавили туда что-то особенное, я действительно просто хочу% пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...