Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы AppKit ссылка класса NSWindowController

Опции
Развертывание Target:

На этой странице
Язык:

NSWindowController

NSWindowController объект управляет окном, обычно окном, сохраненным в файле пера.

Это управление влечет за собой:

  • Загрузка и отображение окна

  • Закрытие окна в надлежащих случаях

  • Настройка заголовка окна

  • Хранение кадра окна (размер и расположение) в базе данных значений по умолчанию

  • Расположение каскадом окна в связи с другими окнами документа приложения

Контроллер окна может управлять окном отдельно или как ролевым игроком в также включающей основанной на документе архитектуре Набора Приложения, NSDocument и NSDocumentController объекты. В этой архитектуре контроллер окна создается и управляется «документом» (экземпляр NSDocument подкласс), и, в свою очередь, сохраняет ссылку на документ.

Отношение между контроллером окна и файлом пера важно. Несмотря на то, что контроллер окна может управлять программно создаваемым окном, он обычно управляет окном в файле пера. Файл пера может содержать другие объекты верхнего уровня, включая другие окна, но ответственность контроллера окна является этим главным окном. Контроллер окна обычно является владельцем файла пера, даже когда это - часть основанного на документе приложения. Независимо от того, кто владелец файла, контроллер окна ответственен за освобождение всех объектов верхнего уровня в файле пера, который это загружает.

Для простых документов — т.е. документов только с одним файлом пера, содержащим окно — Вы должны сделать мало непосредственно с NSWindowController. Набор Приложения создаст один для Вас. Однако, если контроллер окна по умолчанию не достаточен, можно создать пользовательский подкласс NSWindowController. Для документов с многократными окнами или панелями, Ваш документ должен создать отдельные экземпляры NSWindowController (или пользовательских подклассов NSWindowController), один для каждого окна или панели. Примером является приложение CAD, имеющее различные окна для стороны, вершины и видов спереди рисованных объектов. Что Вы выполняете в Вашем NSDocument подкласс определяет ли значение по умолчанию NSWindowController или отдельно создаваемый и сконфигурированный NSWindowController объекты используются.

Разделение на подклассы NSWindowController

Необходимо создать подкласс NSWindowController когда Вы хотите увеличить поведение по умолчанию, например, дать окну пользовательский заголовок или выполнить некоторые задачи установки, прежде чем будет загружено окно. В методе инициализации Вашего класса, убедиться вызвать на super любой initWithWindowNibName:... инициализаторы или initWithWindow: инициализатор. Какой зависит от того, происходит ли объект окна в файле пера или программно создается.

Три NSWindowController методы обычно переопределяются:

Имя метода

Описание

windowWillLoad

Переопределение для выполнения задач перед файлом пера окна загружается.

windowDidLoad

Переопределение для выполнения задач после файла пера окна загружается.

windowTitleForDocumentDisplayName:

Переопределение для настройки заголовка окна.

Можно также переопределить loadWindow получить различное ищущее перо или загружающее перо поведение, несмотря на то, что обычно нет никакой потребности сделать это.

Оператор импорта


Swift

import AppKit

Objective C

@import AppKit;

Доступность


Доступный в OS X v10.0 и позже.
  • init (окно:) - initWithWindow: Определяемый инициализатор

    Возвращает контроллер окна, инициализированный с данным окном.

    Объявление

    Swift

    init(window window: NSWindow?)

    Objective C

    - (instancetype)initWithWindow:(NSWindow *)window

    Параметры

    window

    Объект окна для управления; может быть nil.

    Возвращаемое значение

    Недавно инициализированный контроллер окна.

    Обсуждение

    Этот метод является определяемым инициализатором для NSWindowController.

    Этот инициализатор полезен, когда окно было загружено, но не присваивается никакой контроллер окна. Инициализация по умолчанию включает расположение каскадом, наборы shouldCloseDocument флаг к NOfalse, и определяет имя автосохранения рамки окна к пустой строке. Как побочный эффект, создаваемый контроллер окна добавляется как наблюдатель NSWindowWillCloseNotifications отправленный тем объектом окна (который обрабатывается закрытым методом). При создании контроллера окна делегатом окна можно реализовать NSWindow’s windowShouldClose: метод делегата.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает контроллер окна, инициализированный с файлом пера.

    Объявление

    Swift

    convenience init(windowNibName windowNibName: String)

    Objective C

    - (instancetype)initWithWindowNibName:(NSString *)windowNibName

    Параметры

    windowNibName

    Имя файла пера (минус “.nib” расширение), который архивирует окно получателя; не может быть nil.

    Обсуждение

    Устанавливает владельца файла пера к получателю. Инициализация по умолчанию включает расположение каскадом, наборы shouldCloseDocument флаг к NOfalse, и определяет имя автосохранения для кадра окна к пустой строке.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает контроллер окна, инициализированный с файлом пера и указанным владельцем для того файла пера.

    Объявление

    Swift

    convenience init(windowNibName windowNibName: String, owner owner: AnyObject)

    Objective C

    - (instancetype)initWithWindowNibName:(NSString *)windowNibName owner:(id)owner

    Параметры

    windowNibName

    Имя файла пера (минус “.nib” расширение), который архивирует окно получателя; не может быть nil.

    owner

    Владелец файла пера; не может быть nil.

    Обсуждение

    Инициализация по умолчанию включает расположение каскадом, наборы shouldCloseDocument флаг к NOfalse, и определяет имя автосохранения для кадра окна к пустой строке.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает контроллер окна, инициализированный с файлом пера в абсолютном пути и указанном владельце.

    Объявление

    Swift

    convenience init(windowNibPath windowNibPath: String, owner owner: AnyObject)

    Objective C

    - (instancetype)initWithWindowNibPath:(NSString *)windowNibPath owner:(id)owner

    Параметры

    windowNibPath

    Полный путь к файлу пера, архивирующему окно получателя; не может быть nil.

    owner

    Владелец файла пера; не может быть nil.

    Обсуждение

    Используйте этот метод, если Ваш файл пера в фиксированном расположении (который не является или в пакете класса владельца файла или в основном пакете приложения). Инициализация по умолчанию включает расположение каскадом, наборы shouldCloseDocument флаг к NOfalse, и определяет имя автосохранения для кадра окна к пустой строке.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Загружает окно получателя из файла пера.

    Объявление

    Swift

    func loadWindow()

    Objective C

    - (void)loadWindow

    Обсуждение

    Вы никогда не должны непосредственно вызывать этот метод. Вместо этого вызовите window так windowDidLoad и windowWillLoad методы вызываются. Подклассы могут переопределить этот метод, если путь он находит и загружается, окно не соответствует. Это использует NSBundle’s bundleForClass: метод для получения пакета, с помощью класса владельца файла пера как параметр. Это тогда определяет местоположение файла пера в пакете и, в случае успеха, загружает его; если неуспешный, это пытается найти файл пера в основном пакете.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – isWindowLoaded

  • Выводит на экран окно, связанное с получателем.

    Объявление

    Swift

    @IBAction func showWindow(_ sender: AnyObject?)

    Objective C

    - (IBAction)showWindow:(id)sender

    Параметры

    sender

    Управление, отправляющее сообщение; может быть ноль.

    Обсуждение

    Если окно NSPanel возразите и имеет becomesKeyOnlyIfNeeded отметьте набор к YEStrue, окно выведено на экран перед всеми другими окнами, но не сделано ключевым; иначе это выведено на экран впереди и сделано ключевым. Этот метод полезен для действий меню.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – makeKeyAndOrderFront: (NSWindow)
    – orderFront: (NSWindow)

  • isWindowLoaded - isWindowLoaded Доступный в OS X v10.0 через OS X v10.9

    Возвраты, был ли загружен файл пера, содержащий окно получателя.

    Объявление

    Objective C

    - (BOOL)isWindowLoaded

    Возвращаемое значение

    YEStrue если файл пера, содержащий окно получателя, был загружен, NOfalse иначе.

    Оператор импорта

    Objective C

    @import AppKit;

    Доступность

    Доступный в OS X v10.0 через OS X v10.9.

  • Возвращает окно, принадлежавшее получателю.

    Объявление

    Swift

    var window: NSWindow?

    Objective C

    @property(strong) NSWindow *window

    Возвращаемое значение

    Окно, принадлежавшее получателю или nil если нет того.

    Обсуждение

    Если окно еще не было загружено, этот метод пытается загрузить использование файла пера окна loadWindow. Прежде чем это загрузит окно, это вызывает windowWillLoad, и если контроллер окна имеет документ, он вызывает соответствующий метод документа windowControllerWillLoadNib: (если реализовано). После загрузки окна этот метод вызывает windowDidLoad и, если существует документ, метод NSDocument windowControllerDidLoadNib: (если реализовано).

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – windowControllerWillLoadNib: (NSDocument)

  • Устанавливает окно контроллера окна.

    Объявление

    Swift

    var window: NSWindow?

    Objective C

    @property(strong) NSWindow *window

    Параметры

    aWindow

    Новое окно.

    Обсуждение

    Этот метод выпускает старое окно и любые связанные объекты верхнего уровня в его файле пера и предполагает владение нового окна. Необходимо обычно создавать новый контроллер окна для нового окна и выпускать старый контроллер окна вместо того, чтобы использовать этот метод.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Отправленный после того, как окно, принадлежавшее получателю, было загружено.

    Объявление

    Swift

    func windowDidLoad()

    Objective C

    - (void)windowDidLoad

    Обсуждение

    Реализация по умолчанию ничего не делает.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Отправленный, прежде чем окно, принадлежавшее получателю, загружается.

    Объявление

    Swift

    func windowWillLoad()

    Objective C

    - (void)windowWillLoad

    Обсуждение

    Реализация по умолчанию ничего не делает.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Устанавливает документ, связанный с окном, которым управляет получатель.

    Объявление

    Swift

    unowned(unsafe) var document: AnyObject?

    Objective C

    @property(assign) id document

    Параметры

    document

    Новый документ.

    Обсуждение

    Документы автоматически вызывают этот метод, когда они добавляют контроллер окна к своему списку контроллеров окна; Вы не должны вызывать его непосредственно.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – документ

  • Возвращает документ, связанный с получателем.

    Объявление

    Swift

    unowned(unsafe) var document: AnyObject?

    Objective C

    @property(assign) id document

    Возвращаемое значение

    Документ связался с получателем или nil если нет ни одного.

    Обсуждение

    Когда контроллер окна добавляется к списку документа контроллеров окна, документ устанавливает документ контроллера окна с setDocument:. Набор Приложения использует этот выход для доступа к документу для соответствующих сообщений следующего респондента.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – setDocument:

  • Устанавливает отредактированный флаг документа для контроллера окна.

    Объявление

    Swift

    func setDocumentEdited(_ flag: Bool)

    Objective C

    - (void)setDocumentEdited:(BOOL)flag

    Параметры

    flag

    YEStrue если документ был отредактирован начиная с его последнего сохранения, NOfalse если это не имеет.

    Обсуждение

    Контроллер окна использует этот флаг, чтобы управлять, обнаруживается ли его связанное окно как грязное. Вы не должны вызывать этот метод непосредственно для контроллеров окна с ассоциированным документом; документ вызывает этот метод на своих контроллерах окна по мере необходимости.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Закрывает окно, если оно было загружено.

    Объявление

    Swift

    func close()

    Objective C

    - (void)close

    Обсуждение

    Поскольку этот метод закрывает окно, не прося у пользователя подтверждение, Вы обычно не вызываете его, когда выбрана команда меню Close. Вместо этого вызовите NSWindow’s performClose: на окне получателя.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Закрываются возвраты, закрывает ли получатель обязательно ассоциированный документ, когда окно это управляет.

    Объявление

    Swift

    var shouldCloseDocument: Bool

    Objective C

    @property BOOL shouldCloseDocument

    Возвращаемое значение

    YEStrue если получатель обязательно закрывает ассоциированный документ, когда окно, которым это управляет, закрывается, NOfalse иначе.

    Обсуждение

    Если NOfalse, документ закрывается только, когда закрывается последнее остающееся окно документа.

    Значение по умолчанию NOfalse.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – setShouldCloseDocument:

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

    Объявление

    Swift

    var shouldCloseDocument: Bool

    Objective C

    @property BOOL shouldCloseDocument

    Параметры

    flag

    YEStrue если получатель обязательно закрывает ассоциированный документ, когда окно, которым это управляет, закрывается, NOfalse иначе.

    Обсуждение

    Если NOfalse, документ закрывается только, когда закрывается последнее остающееся окно документа.

    Значение по умолчанию NOfalse.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – shouldCloseDocument

  • Возвращает владельца файла пера, содержащего окно, которым управляет получатель.

    Объявление

    Swift

    unowned(unsafe) var owner: AnyObject { get }

    Objective C

    @property(assign, readonly) id owner

    Возвращаемое значение

    Владелец файла пера, содержащего окно, которым управляет получатель; обычно self, но может быть документ получателя или некоторый другой объект.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – windowNibName

  • Возвращает имя файла пера, хранящего окно, связанное с получателем.

    Объявление

    Swift

    var windowNibName: String? { get }

    Objective C

    @property(copy, readonly) NSString *windowNibName

    Возвращаемое значение

    Имя файла пера, хранящего окно, связанное с получателем.

    Обсуждение

    Если initWithWindowNibPath:owner: использовался для инициализации экземпляра, windowNibName возвращает последний компонент контура с “.nib” расширение неизолированным. Если initWithWindowNibName: или initWithWindowNibName:owner: использовался, windowNibName возвращает имя без “.nib” расширение.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – владелец

  • Возвращает полный путь файла пера, хранящего окно, связанное с получателем.

    Объявление

    Swift

    var windowNibPath: String? { get }

    Objective C

    @property(copy, readonly) NSString *windowNibPath

    Возвращаемое значение

    Полный путь файла пера, хранящего окно, связанное с получателем; nil если это не может быть расположено.

    Обсуждение

    Если initWithWindowNibPath:owner: использовался для инициализации экземпляра, путь просто возвращается. Если initWithWindowNibName: или initWithWindowNibName:owner: использовался, windowNibPath определяет местоположение пера в пакете класса владельца файла или в основном пакете приложения и возвращает полный путь (или nil если это не может быть расположено). Подклассы могут переопределить это для увеличения поискового поведения, но вероятно должны вызвать super сначала.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Наборы, должно ли окно расположиться каскадом в связи с другими окнами документа.

    Объявление

    Swift

    var shouldCascadeWindows: Bool

    Objective C

    @property BOOL shouldCascadeWindows

    Параметры

    flag

    YEStrue если окно должно расположиться каскадом в связи с другими окнами документа, NOfalse иначе.

    Обсуждение

    Расположение каскадом в связи с другими окнами документа означает иметь немного расположение смещения так, чтобы строки заголовка ранее выведенных на экран окон были все еще видимы.

    Значение по умолчанию YEStrue.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – shouldCascadeWindows

  • Возвраты, расположится ли окно каскадом в связи с другими окнами документа, когда оно будет выведено на экран.

    Объявление

    Swift

    var shouldCascadeWindows: Bool

    Objective C

    @property BOOL shouldCascadeWindows

    Возвращаемое значение

    YEStrue если окно расположится каскадом в связи с другими окнами документа, NOfalse иначе.

    Обсуждение

    Значение по умолчанию YEStrue.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Определяет имя, под которым кадр окна сохраняется в базе данных значений по умолчанию.

    Объявление

    Swift

    var windowFrameAutosaveName: String?

    Objective C

    @property(copy) NSString *windowFrameAutosaveName

    Параметры

    name

    Имя, под которым кадр окна сохраняется в базе данных значений по умолчанию.

    Обсуждение

    По умолчанию, name пустая строка, не заставляя информации быть сохраненным в базе данных значений по умолчанию.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

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

    Объявление

    Swift

    var windowFrameAutosaveName: String?

    Objective C

    @property(copy) NSString *windowFrameAutosaveName

    Возвращаемое значение

    Имя, под которым прямоугольник кадра окна, принадлежавшего получателю, сохранен в базе данных значений по умолчанию.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Синхронизирует выведенный на экран заголовок окна и представленное имя файла с информацией в ассоциированном документе.

    Объявление

    Swift

    func synchronizeWindowTitleWithDocumentName()

    Objective C

    - (void)synchronizeWindowTitleWithDocumentName

    Обсуждение

    Если контроллер окна не имеет никакого ассоциированного документа или загруженного окна, ничего не делает. Этот метод запрашивает документ контроллера окна для получения имени дисплея документа и всего пути имени файла, затем вызывает windowTitleForDocumentDisplayName: заставить имя дисплея показывать в заголовке окна.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает заголовок окна, который будет использоваться для данного имени дисплея документа.

    Объявление

    Swift

    func windowTitleForDocumentDisplayName(_ displayName: String) -> String

    Objective C

    - (NSString *)windowTitleForDocumentDisplayName:(NSString *)displayName

    Параметры

    displayName

    Имя дисплея для документа. Это - последний компонент контура, под которым сохраняется файл документа.

    Обсуждение

    Возвраты реализации по умолчанию displayName. Подклассы могут переопределить этот метод для настройки заголовка окна. Например, приложение CAD могло добавить “- Вершина” или “- Сторона”, в зависимости от представления, выведенного на экран окном.

    Оператор импорта

    Objective C

    @import AppKit;

    Swift

    import AppKit

    Доступность

    Доступный в OS X v10.0 и позже.