Предупреждение появляется на экране или как модальное приложением диалоговое окно или как лист, присоединенный к окну документа. Методы NSAlert класс позволяет Вам указывать предупредительный уровень, предупредительный текст, заголовки кнопки, и пользовательский значок должен Вы требовать его. Класс также позволяет Вашим предупреждениям вывести на экран кнопку справки и обеспечивает пути к приложениям для предложения помощи, определенной для предупреждения.
Проектом, NSAlert объект предназначается для единственного предупреждения — т.е. предупреждения с уникальной комбинацией заголовка, кнопок, и т.д. — который выведен на экран на определенное условие. Необходимо создать NSAlert объект для каждого предупредительного диалогового окна. Обычно необходимо создать NSAlert возразите, когда необходимо вывести на экран предупреждение и выпустить его, когда Вы сделаны. Если у Вас есть определенное предупредительное диалоговое окно, которое необходимо неоднократно показывать, можно сохранить и снова использовать экземпляр NSAlert для этого диалогового окна.
После создания предупреждения с помощью одного из предупредительных методов создания можно настроить его далее до отображения его путем настройки его атрибутов. Посмотрите Атрибуты Экземпляра
Атрибуты экземпляра
NSAlert объекты имеют следующие атрибуты:
Тип тип предупреждения помогает передать важность или серьезность ее сообщения пользователю. Указанный с alertStyle свойство.
Текст сообщения основное сообщение предупреждения. Указанный с messageText.
Информативная текстовая Дополнительная информация о предупреждении. Указанный с informativeText.
Значок дополнительный, пользовательский значок для отображения на предупреждении, использующемся вместо значка приложения по умолчанию. Указанный с icon.
Предупреждения справки могут позволить пользователю получить справку о них. Использовать helpAnchor и showsHelp.
Кнопки ответа По умолчанию предупреждение имеют одну кнопку ответа: кнопка OK. Можно добавить больше кнопок ответа с помощью buttons свойство.
Флажок Suppression флажок утаивания позволяет пользователю подавлять дисплей определенного предупреждения в последующих случаях события, инициировавшего его. Использовать showsSuppressionButton.
Аксессуар просматривает вспомогательное, представление позволяет Вам добавить дополнительную информацию к предупреждению; например, текстовое поле с контактной информацией. Использовать accessoryView, layout.
Разделение на подклассы примечаний
NSAlert класс не разработан для разделения на подклассы.
Если Вы не должны поддерживать совместимость с существующим предупредительным кодом обработки, использующим основанный на функции API, необходимо выделить (alloc) и инициализируйте (init) предупредительный объект, и затем набор его атрибуты с помощью надлежащих методов NSAlert класс.
NSAlert класс извлекает локализованное описание ошибки, предложение восстановления и опции восстановления от error параметр и использует их в качестве текста сообщения предупреждения, информативного текста и заголовков кнопки, соответственно.
Создает предупреждение, совместимое с предупреждениями, создаваемыми с помощью NSRunAlertPanel функция для дисплея как предупреждение стиля предупреждения.
Оператор осуждения
Вместо этого alloc и initNSAlert объект и набор его атрибуты как надлежащие.
Заголовок предупреждения. Когда nil или пустая строка, локализованный заголовок значения по умолчанию используется («Предупреждение» на английском языке).
defaultButtonTitle
Заголовок для кнопки по умолчанию. Когда nil или пустая строка, значение по умолчанию локализовало заголовок кнопки («OK» на английском языке) используется.
alternateButtonTitle
Заголовок для альтернативной кнопки. Когда nil, альтернативная кнопка не создается.
otherButtonTitle
Заголовок для другой кнопки. Когда nil, другая кнопка не создается.
informativeText
Информативный текст. Это является дополнительным, но должно быть пустой строкой (@””) нет nil. Могут значения встроенной переменной с помощью строки формата; перечислите любые необходимые параметры за эту отформатированную строку в конце списка аргументов метода. Для получения дополнительной информации о строках формата посмотрите Строковые Объекты Форматирования.
Возвращаемое значение
Инициализированное предупреждение.
Обсуждение
Для языков, читающих слева направо, кнопки размечаются на нижнем правом углу предупредительного листа или окна, с defaultButtonTitle справа, alternateButtonTitle слева, и otherButtonTitle в середине. Возвращаемые значения, идентифицирующие эти кнопки, являются константами — NSAlertDefaultReturn, NSAlertAlternateReturn, и NSAlertOtherReturn— это соответствует ключевым словам.
По умолчанию первая кнопка имеет ключевой эквивалент Возврата, любая кнопка с заголовком «Cancel» имеет ключевой эквивалент Escape, и любая кнопка с заголовком “не Сохраняет”, имеет ключевой эквивалент Команды-D (но только если это не первая кнопка). Можно также присвоить различные ключевые эквиваленты для кнопок с помощью setKeyEquivalent: метод NSButton класс. Для доступа к кнопкам предупреждения используйте buttons свойство.
Специальные замечания
Это - метод совместимости. Это разработано для простого принятия приложениями, мигрирующими от соответствующего основанного на функции API. Этот метод использует более ранние возвращаемые значения —NSAlertDefaultReturn, NSAlertAlternateReturn, и NSAlertOtherReturn— совместимый с более ранним API, а не возвращаемыми значениями, определенными NSAlert класс, описанный в Возвращаемых значениях Кнопки.
Если Вы не должны поддерживать совместимость с существующим предупредительным кодом обработки, использующим основанный на функции API, необходимо выделить (alloc) и инициализируйте (init) объект, и затем набор его атрибуты с помощью надлежащих методов NSAlert класс.
Указывает, что предупреждение должно сделать непосредственное расположение вместо лениво как раз перед дисплеем.
Объявление
Swift
funclayout()
Objective C
- (void)layout
Обсуждение
Необходимо вызвать этот метод только, когда необходимо настроить расположение предупреждения. Вызовите этот метод после того, как атрибуты всего предупреждения будут настроены, включая флажок утаивания и вспомогательное расположение. После возвратов метода можно сделать необходимые изменения макета; например, корректируя кадр вспомогательного представление.
NSAlert класс помещает вспомогательное представление между информативным текстом или флажком утаивания (если есть) и кнопками ответа. Прежде чем Вы измените местоположение вспомогательного представление, сначала вызовите layout метод.
При добавлении вспомогательного представление к предупреждению показывает пример добавления вспомогательного представление к предупреждению. Предупредите диалоговое окно со вспомогательным, которое представление показывает сгенерированному предупреждению.
Перечисление 1Adding вспомогательное представление к предупреждению
Указывает, имеет ли предупреждение кнопку справки.
Объявление
Swift
var showsHelp: Bool
Objective C
@propertyBOOLshowsHelp
Обсуждение
Установите значение этого свойства в YEStrue указать, что предупреждение имеет кнопку справки, или NOfalse указать его не делает.
Когда пользователь нажимает кнопку справки предупреждения, предупредительный делегат (delegate) получает a alertShowHelp: сообщение. Если нет никакого делегата, или если делегат не реализует тот метод, или если возвращается делегат NOfalse, тогда openHelpAnchor:inBook: сообщение отправляется менеджеру по справке приложения с a nil книга и привязка, указанная helpAnchor свойство, если установлено. Если делегат возвращается, исключение повышено NOfalse и никакая привязка к справке не установлена.
Для обеспечения привязки к справке для предупреждения установите это свойство в надлежащее строковое значение. Для удаления привязки к справке установите значение этого свойства в nil.
Для установки делегата к предупреждению обеспечьте объект, соответствующий NSAlertDelegateпротокол к этому свойству. Для удаления делегата установите значение этого свойства в nil.
Обработчик завершения, который вызывают, когда заканчивается модальный сеанс листа.
Обсуждение
Этот метод использует NSWindow методы листа для отображения предупреждения (для получения дополнительной информации посмотрите Управляющие Листы). Если предупреждение имеет предупредительный стиль NSCriticalAlertStyle, это будет представлено как критический лист, что означает, что это может вывести на экран поверх других листов, которые могли бы уже быть присоединены к окну. Иначе, это будет представлено — или поставлено в очередь для представления — как стандартный лист.
Обратите внимание на то, что orderOut: больше потребности, которые не вызовут в обработчике завершения. Если Вы не отклоните предупреждение, то оно будет сделано для Вас после того, как закончится обработчик завершения.
alertDidEndSelector параметром должен быть селектор, берущий три параметра, и соответствующему методу нужно смоделировать объявление на следующем примере:
-(void)alertDidEnd:(NSAlert*)
alert
returnCode:(NSInteger)
returnCode
contextInfo:(void*)
contextInfo
;
где alertNSAlert объект, returnCode указывает, которые снабжают кнопками пользователя, по которому щелкают, и contextInfo то же contextInfo переданный в исходном сообщении. returnCode параметр идентифицирует, какая кнопка использовалась для отклонения предупреждения (см. раздел «Special Considerations» этого метода). Модальный делегат определяет, какая кнопка была нажата («OK», «Отмена», и т.д.) и продолжается соответственно.
Если Вы хотите отклонить лист из alertDidEndSelector метод перед модальным делегатом выполняет действие в ответ на возвращаемое значение, отправить orderOut: (NSWindow) к объекту окна, полученному путем отправки window к alert параметр. Это позволяет Вам цепочечным листам, например, путем отклонения одного листа прежде, чем показать следующее из alertDidEndSelector метод. Обратите внимание на то, что необходимо бояться вызывать orderOut: на листе откуда-либо в Вашей программе перед alertDidEndSelector метод вызывается, потому что родительское окно может зависнуть, когда требуют другое предупреждение. Если необходимо сделать это, используйте NSApplication метод endSheet:.
Если Вы хотите настроить флажок утаивания предупреждения, получить доступ к нему через это свойство и затем использовать методы NSButton класс. Например, можно сделать это, чтобы изменить сообщение значения по умолчанию флажка утаивания или изменить его начальное состояние выбора (который «отменяется» по умолчанию). Для примера кода посмотрите showsSuppressionButton свойство.
Указывает, включает ли предупреждение флажок утаивания, который можно использовать, чтобы позволить пользователю выбирать из наблюдения предупреждения снова.
Объявление
Swift
var showsSuppressionButton: Bool
Objective C
@propertyBOOLshowsSuppressionButton
Обсуждение
Значение по умолчанию этого свойства NOfalse, который указывает отсутствие флажка утаивания на предупреждении. Установите значение в YEStrue показать флажок утаивания на предупреждении.
По умолчанию флажок утаивания имеет заголовок, “Не показывают это сообщение снова”. Для настройки его используйте флажок title свойство, следующим образом:
myAlert
.suppressionButton.title=@"Do not show this warning again";
Для создания предупреждения, реагирующего на состояние выбора флажка утаивания используйте код как показанный в Перечислении 1. Рисунок 1 показывает соответствующее предупреждение.
Перечисление 2Creating предупреждение с флажком утаивания
По умолчанию изображение, используемое на предупреждении, является значком приложения, к которому получают доступ через комплект приложений NSApplicationIcon свойство. При установке значения этого свойства указанное пользовательское изображение используется вместо значка приложения.
При установке пользовательского значка предупреждения можно очистить его путем установки значения этого свойства в nil, который восстанавливает использование значка приложения для предупреждения.
Кнопка вывела на экран самый правый на предупреждении (для слева направо языка), соответствует кнопке в индексе 0 в массиве этого свойства, и считается кнопкой по умолчанию. Пользователь может вызвать эту кнопку путем нажатия клавиши Return.
Любая кнопка с заголовком «Cancel» имеет ключевой эквивалент Escape, и любая кнопка с заголовком “не Сохраняет”, имеет ключевой эквивалент Команды-D (но только если это не первая кнопка). Можно также присвоить различные ключевые эквиваленты для кнопок с помощью setKeyEquivalent: метод NSButton класс.
Заголовок кнопки для добавления к предупреждению. Не должен быть nil.
Возвращаемое значение
Кнопка добавила к предупреждению.
Обсуждение
Кнопки помещаются, запускаясь около правой стороны предупреждения и идя к левой стороне (для языков, читающих слева направо). Первые три кнопки идентифицируются позиционально как NSAlertFirstButtonReturn, NSAlertSecondButtonReturn, NSAlertThirdButtonReturn в параметре кода возврата, оцененном модальным делегатом. Последующие кнопки идентифицируются как NSAlertThirdButtonReturn +n, где n целое число
По умолчанию первая кнопка имеет ключевой эквивалент Возврата, любая кнопка с заголовком «Cancel» имеет ключевой эквивалент Escape, и любая кнопка с заголовком “не Сохраняет”, имеет ключевой эквивалент Команды-D (но только если это не первая кнопка). Можно также присвоить различные ключевые эквиваленты для кнопок с помощью setKeyEquivalent: метод NSButton класс. Кроме того, можно использовать setTag: метод NSButton класс для установки возвращаемого значения.
Модальная приложением панель или модальный документом лист, соответствующий предупреждению. (только для чтения)
Объявление
Swift
var window: AnyObject { get }
Objective C
@property(readonly,strong)idwindow
Обсуждение
Окно предупреждения имеет тип NSPanel. Используйте это свойство, когда Вы захотите отклонить предупреждение, создаваемое с beginSheetModalForWindow:completionHandler: метод в блоке обработчика завершения того метода.
Предупреждение раньше предупреждало пользователя о текущем или нависшем событии. Цель является более, чем информационной, но не критически важной. Это - предупредительный стиль по умолчанию.
Доступный в OS X v10.3 и позже.
InformationalAlertStyle
NSInformationalAlertStyle
Предупреждение раньше сообщало пользователю о текущем или нависшем событии.
Доступный в OS X v10.3 и позже.
CriticalAlertStyle
NSCriticalAlertStyle
Зарезервированный этот стиль для критических предупреждений, такой как тогда, когда могли бы быть серьезные последствия в результате определенного пользовательского ответа (например, “чистая установка” сотрет все данные по объему). Этот стиль заставляет значок быть под маркой со значком предупреждения.
Доступный в OS X v10.3 и позже.
Обсуждение
В настоящее время между информационными и предупреждающими предупреждениями нет никакого визуального различия. Необходимо только использовать критическое (или «предостережение») предупредительный стиль, если гарантировано, как указано в главе «Предупреждений» в Инструкциях по Интерфейсу пользователя OS X.
Возвращаемые значения предупреждения для кнопок являются зависимым позиции. Следующие константы описывают возвращаемые значения для первых трех кнопок на предупреждении (принятие языка, читающего слева направо).
Объявление
Swift
var NSAlertFirstButtonReturn: Int { get } var NSAlertSecondButtonReturn: Int { get } var NSAlertThirdButtonReturn: Int { get }
Пользователь нажал первую (самую правую) кнопку на диалоговом окне или листе.
Доступный в OS X v10.3 и позже.
NSAlertSecondButtonReturn
NSAlertSecondButtonReturn
Пользователь нажал вторую кнопку от правого края диалогового окна или листа.
Доступный в OS X v10.3 и позже.
NSAlertThirdButtonReturn
NSAlertThirdButtonReturn
Пользователь нажал третью кнопку от правого края диалогового окна или листа.
Доступный в OS X v10.3 и позже.
Обсуждение
Если у Вас есть больше чем три кнопки на Вашем предупреждении, позиционное кнопкой возвращаемое значение NSAlertThirdButtonReturn + n, где n целое число. Для языков, читающих справа налево, позиция первой кнопки является самой близкой к левому краю диалогового окна или листа.