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.
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.
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() -> NSMediaLibraryBrowserController
Objective 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: Bool
Objective C
@property(getter=isVisible) BOOL visible
Обсуждение
Установите это значение в
YES
true
показать Браузер Библиотеки Носителей илиNO
false
скрыть его.Это значение может быть считано для определения текущего состояния видимости панели.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.9 и позже.
См. также
-
mediaLibraries mediaLibraries
СвойствоИспользующаяся библиотека носителей.
Объявление
Swift
var mediaLibraries: NSMediaLibrary
Objective 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;
Константы
-
Audio
NSMediaLibraryAudio
Покажите аудио медиа-материалы.
Доступный в OS X v10.9 и позже.
-
Image
NSMediaLibraryImage
Носители изображения на дисплее.
Доступный в OS X v10.9 и позже.
-
Movie
NSMediaLibraryMovie
Покажите медиа-материалы фильма.
Доступный в OS X v10.9 и позже.
Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.9 и позже.
-