Я хочу преобразовать следующую функцию void, записанную в объективе-c, в swift, но она не будет работать так, как я ее делаю. В основном это неправильно с шагом 1,2,4 и 5, потому что я не знаю, как мне его перевести.Управление выбором в текстовом наборе с помощью swift
-(void)applyStyletoSelection:(NSString *)style{
// 1. Get the range of the selected text.
NSRange range = [_textView selectedRange];
// 2. Create a new font with the selected text style.
UIFont *styledFont = [UIFont preferredFontForTextStyle:style];
// 3. Begin editing the text storage.
[_textView.textStorage beginEditing];
// 4. Create a dictionary with the new font as the value and the NSFontAttributeName property as a key.
NSDictionary *dict = @{NSFontAttributeName : styledFont};
// 5. Set the new attributes to the text storage object of the selected text.
[_textView.textStorage setAttributes:dict range:range];
// 6. Notify that we end editing the text storage.
[_textView.textStorage endEditing];
}
это, насколько я получил, но я уверен, что это неправильно:
func applyStyleToSelection(style: NSString) {
//1
let range = textInput.selectedRange
//2
let styledFont = UIFont.preferredFontForTextStyle(style as String)
//3
textInput.textStorage .beginEditing()
//4
let dict: [String] = ["styledFont"]
//5
//Could not find an overload for 'init' that accepts the supplied arguments
textInput.textStorage .setAttributes([String() : dict]?, range: range)
//6
textInput.textStorage .endEditing()
}
Может кто-нибудь помочь мне преобразовать это стрижа? Ты бы определенно мне очень помог!
Обновите свой вопрос, используя свой код Swift. Объясните, какие у вас проблемы с переводом. – rmaddy
ОК, вы добавили код Swift. Теперь вам нужно рассказать нам, какая у вас проблема. Просто сказать, что вы уверены, что это неправильно, не помогает. Будьте конкретны в отношении ваших проблем и проблем, которые возникают у вас с кодом Swift по сравнению с кодом Objective-C. – rmaddy
Я действительно не знаю, в чем проблемы. Вот почему я прошу помощи на этом форуме. Я довольно новый, чтобы быстро, поэтому я не знаю, как перевести такую функцию с объективной-с на быструю. В этот момент проблема возникла здесь: «var dict = NSFontAttributeName (styledFont)» В нем говорится: «Невозможно вызвать« NSFontAttributeName »с помощью списка аргументов типа« (UIFont) » – user3638160