Нефильтрация NSPasteboard

MariaDB не поддерживается SonarQube, см. требования .

5
задан Sampson 23 November 2011 в 02:04
поделиться

2 ответа

-[NSPasteboard types] возвратит все доступные типы для данных по буферу обмена, но это должно возвратить их "в порядке, которым они были объявлены".

Документация для -[NSPasteboard declareTypes:owner:] говорит, что "типы должны быть заказаны согласно предпочтению исходного приложения".

Правильно реализованный владелец области монтажа должен, поэтому, объявить самое богатое представление содержания (вероятно, исходное содержание) как первый тип; таким образом, разумное единственное представление должно быть:

[pb dataForType:[[pb types] objectAtIndex:0]]
4
ответ дан 15 December 2019 в 01:16
поделиться

Вы можете получать некоторое использование из +[NSPasteboard typesFilterableTo:]. Я изображаю отрывок как это:

NSArray *allTypes = [pb types];
NSAssert([allTypes count] > 0, @"expected at least one type");

// We always require the first declared type, as a starting point.
NSMutableSet *requiredTypes = [NSMutableSet setWithObject:[allTypes objectAtIndex:0]];

for (NSUInteger index = 1; index < [allTypes count]; index++) {
    NSString *aType = [allTypes objectAtIndex:index];
    NSSet *filtersFrom = [NSSet setWithArray:[NSPasteboard typesFilterableTo:aType]];

    // If this type can't be re-created with a filter we already use, add it to the
    // set of required types.
    if (![requiredTypes intersectsSet:filtersFrom])
        [requiredTypes addObject:aType];
}

Я не уверен, насколько эффективный это было бы при выборе хороших типов, как бы то ни было.

0
ответ дан 15 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: