UWP множественное представление: закройте все вторичное представление, когда основное представление закрыто

Обновление для Swift 3:

let letters = CharacterSet.letters
let digits = CharacterSet.decimalDigits

var letterCount = 0
var digitCount = 0

for uni in phrase.unicodeScalars {
    if letters.contains(uni) {
        letterCount += 1
    } else if digits.contains(uni) {
        digitCount += 1
    }
}

(Предыдущий ответ для старых версий Swift)

Возможное решение Swift:

var letterCounter = 0
var digitCount = 0
let phrase = "The final score was 32-31!"
for tempChar in phrase.unicodeScalars {
    if tempChar.isAlpha() {
        letterCounter++
    } else if tempChar.isDigit() {
        digitCount++
    }
}

Обновление: Вышеупомянутое решение работает только с символами в наборе символов ASCII, то есть не распознает буквы Ä, é или ø в виде букв. Следующее альтернативное решение использует NSCharacterSet из фреймворческой структуры, которая может тестировать символы на основе их классов символов Unicode:

let letters = NSCharacterSet.letterCharacterSet()
let digits = NSCharacterSet.decimalDigitCharacterSet()

var letterCount = 0
var digitCount = 0

for uni in phrase.unicodeScalars {
    if letters.longCharacterIsMember(uni.value) {
        letterCount++
    } else if digits.longCharacterIsMember(uni.value) {
        digitCount++
    }
}

Обновление 2: Начиная с Xcode 6 beta 4, первое решение больше не работает, поскольку методы isAlpha() и связанные с ним (ASCII-only) были удалены из Swift. Второе решение все еще работает.

0
задан An Hoa 16 January 2019 в 16:13
поделиться

1 ответ

Возможно ли достичь этого сценария? Похоже, что в UWP невозможно зафиксировать событие «Нажата кнопка X».

Существует событие CloseRequested класса SystemNavigationManagerPreview . Это событие происходит, когда пользователь вызывает системную кнопку для закрытия (кнопка «x» в углу строки заголовка приложения).

Обратите внимание: если вы хотите использовать это событие, вам необходимо добавить ограниченную возможность confirmAppClose в файл Package.appxmanifest.

0
ответ дан Xavier Xie - MSFT 16 January 2019 в 16:13
поделиться
Другие вопросы по тегам:

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