NSMediaLibraryBrowserController
NSMediaLibraryBrowserController экземпляр конфигурирует и выводит на экран панель Media Library Browser. От этой панели пользователь может перетащить носители в представления в их приложении. Класс обеспечивает стандартный интерфейс для содержания платформы MediaLibrary.
Для получения дополнительной информации посмотрите Ссылку класса MLMediaLibrary, Ссылку класса MLMediaSource, Ссылку класса MLMediaGroup и Ссылку класса MLMediaObject в Ссылке Платформы Библиотеки Носителей.
Типы области монтажа
Браузер Библиотеки Носителей определяет два типа области монтажа для декодирования перетащенного содержания и получения мультимедийного контента, который является надлежащим, один для mediagroup содержания и один для отдельных элементов носителей
com.apple.MediaLibrary.PboardType.MediaGroupIdentifiersPlistкогда пользователь перетаскивает элементы от верхней организованной медиа-группой области Браузера Библиотеки Носителей, тип области монтажа описывает содержание медиа-группы и публикуется.com.apple.MediaLibrary.PboardType.MediaObjectIdentifiersPlistкогда пользователь перетаскивает элементы носителей, такие как изображения, фильмы, или звучит от области элемента носителей Браузера Библиотеки Носителей, тип области монтажа описывает отдельные элементы носителей и публикуется.
Существует одна треть, менее специализированная, тип области монтажа библиотеки носителей. Когда пользователь будет инициировать перетаскивание, область монтажа будет содержать массив с еще одним больше NSFilenamesPboardType элементы области монтажа, один для каждого из файлов в группе, перетащенной от организованной медиа-группой области и одного или более элементов, когда элемент носителей или элементы перетаскиваются от области элемента носителей.
Если Вам не нужен доступ к связанным метаданным Библиотеки Носителей, с помощью NSFilenamesPboardType данные области монтажа являются самыми простыми средними значениями получения перетащенного содержания, несмотря на то, что получая доступ к носителям этим способом, когда Ваше приложение поигралось в песочнице, требует, чтобы Вы использовали NSURL startAccessingSecurityScopedResource и stopAccessingSecurityScopedResource методы.
Тип области монтажа медиа-группы
"com.apple.MediaLibrary.PboardType.MediaGroupIdentifiersPlist" когда пользователь перетаскивает элементы от верхней организованной медиа-группой области Браузера Библиотеки Носителей, тип области монтажа публикуется.
Это состоит из NSDictionary содержащий plistkeys с исходными идентификаторами носителей и соответствующий value это - массивы идентификаторов медиа-группы.
Декодировать данные области монтажа и добираться MLMediaGroup экземпляры, принимая Вас имеют MLMediaLibrary экземпляр, используйте методы, проиллюстрированные в Перечислении 1.
MLMediaGroup экземпляры от области монтажа
NSDictionary *mediaGroupsDict = [dragPasteboard propertyListForType:@"com.apple.MediaLibrary.PBoardType.MediaGroupIdentifiersPlist"];if ( mediaGroupsDict ){[s appendFormat:@"Media Groups Dictionary: %@\n", mediaGroupsDict];[s appendString:@"Media Groups:\n"];for ( NSString *sourceIdentifier in [mediaGroupsDict allKeys] ){MLTAppDelegate *appDelegate = (MLTAppDelegate *)[[NSApplication sharedApplication] delegate];MLMediaLibrary *mediaLibrary = appDelegate.mediaLibrary;MLMediaSource *mediaSource = [mediaLibrary.mediaSources objectForKey:sourceIdentifier];if ( mediaSource ){NSArray *groupIdentifiers = [mediaGroupsDict objectForKey:sourceIdentifier];for ( NSString *groupIdentifier in groupIdentifiers ){MLMediaGroup *mediaGroup = [mediaSource mediaGroupForIdentifier:groupIdentifier];[s appendFormat:@"%@\n", mediaGroup];}}}}
Тип области монтажа мультимедийного объекта
"com.apple.MediaLibrary.PboardType.MediaObjectIdentifiersPlist" когда пользователь перетаскивает элемент от области элемента носителей Браузера Библиотеки Носителей, тип области монтажа публикуется.
Это состоит из NSDictionary содержащий plistkeys с исходными идентификаторами носителей и соответствующий value это - массивы идентификаторов мультимедийного объекта.
Декодировать данные области монтажа и добираться MLMediaObject экземпляры, предполагая, что у Вас есть экземпляр MLMediaLibrary, используют методы, проиллюстрированные в Перечислении 2.
MLMediaObject экземпляры от области монтажа
NSDictionary *mediaObjectsDict = [dragPasteboard propertyListForType:@"com.apple.MediaLibrary.PBoardType.MediaObjectIdentifiersPlist"];if ( mediaObjectsDict ){[s appendFormat:@"Media Objects Dictionary: %@\n", mediaObjectsDict];[s appendString:@"Media Objects:\n"];for ( NSString *sourceIdentifier in [mediaObjectsDict allKeys] ){MLTAppDelegate *appDelegate = (MLTAppDelegate *)[[NSApplication sharedApplication] delegate];MLMediaLibrary *mediaLibrary = appDelegate.mediaLibrary;MLMediaSource *mediaSource = [mediaLibrary.mediaSources objectForKey:sourceIdentifier];if ( mediaSource ){NSArray *objectIdentifiers = [mediaObjectsDict objectForKey:sourceIdentifier];for ( NSString *objectIdentifier in objectIdentifiers ){MLMediaObject *mediaObject = [mediaSource mediaObjectForIdentifier:objectIdentifier];[s appendFormat:@"%@\n", mediaObject];}}}}
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.9 и позже.
-
Возвращает экземпляр Браузера Библиотеки разделяемой среды.
Объявление
Swift
class func sharedMediaLibraryBrowserController() -> NSMediaLibraryBrowserControllerObjective C
+ (NSMediaLibraryBrowserController *)sharedMediaLibraryBrowserControllerВозвращаемое значение
Экземпляр контроллера Браузера Библиотеки разделяемой среды.
Обсуждение
Панель Media Library Browser является прокси для разрешения простого дисплея библиотеки носителей в приложении.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.9 и позже.
-
Переключается видимость Браузера Библиотеки Носителей.
Объявление
Swift
@IBAction func togglePanel(_sender: AnyObject?)Objective C
- (IBAction)togglePanel:(id)senderПараметры
senderОтправитель сообщения.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.9 и позже.
См. также
-
Булево значение, определяющее, видима ли панель Media Library Browser.
Объявление
Swift
var visible: BoolObjective C
@property(getter=isVisible) BOOL visibleОбсуждение
Установите это значение в
YEStrueпоказать Браузер Библиотеки Носителей илиNOfalseскрыть его.Это значение может быть считано для определения текущего состояния видимости панели.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.9 и позже.
См. также
-
mediaLibraries mediaLibrariesСвойствоИспользующаяся библиотека носителей.
Объявление
Swift
var mediaLibraries: NSMediaLibraryObjective C
@property NSMediaLibrary mediaLibrariesОбсуждение
Это свойство будет одним из значений в константах NSMediaLibrary.
Можно установить значение для пользований определенной библиотекой (изображение, аудио или фильм). Можно также считать значение для определения, который в настоящее время выводится на экран.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.9 и позже.
-
Эти константы являются масками, используемыми для конфигурирования Браузера Библиотеки Носителей для отображения определенных типов носителей. Объединенные маски еще не поддерживаются. Другими словами, только одно ненулевое значение маски поддерживается за один раз. Если маски объединены, самое низкое значение маски используется.
Объявление
Swift
struct NSMediaLibrary : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var Audio: NSMediaLibrary { get } static var Image: NSMediaLibrary { get } static var Movie: NSMediaLibrary { get } }Objective C
enum{ NSMediaLibraryAudio = 1UL << 0, NSMediaLibraryImage = 1UL << 1, NSMediaLibraryMovie = 1UL << 2 }; typedef NSUInteger NSMediaLibrary;Константы
-
AudioNSMediaLibraryAudioПокажите аудио медиа-материалы.
Доступный в OS X v10.9 и позже.
-
ImageNSMediaLibraryImageНосители изображения на дисплее.
Доступный в OS X v10.9 и позже.
-
MovieNSMediaLibraryMovieПокажите медиа-материалы фильма.
Доступный в OS X v10.9 и позже.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.9 и позже.
-
