Изменение ширины символа пробела в NSTextView

Я пытаюсь сделать приложение для чтения, чтобы помочь девушке с трудностями чтения. Некоторые исследования показывают, что просто изменение цвета текста, фона и тени действительно может помочь детям, поэтому яЯ пытаюсь позволить ей сделать это. Это'просто большой NSTextView с кнопками, чтобы она могла изменять размер шрифта, цвет, цвет фона, свойства тени, межбуквенный интервал, межстрочный интервал и межсловный интервал. Я знаю, что вы можете сделать большую часть этого, просто используя Word, но яя пытаюсь сделать это настолько интуитивным / забавным, насколько это возможно для нее.

Место, где я мог бы использовать руку, заключается в изменении размера промежутка между словами. В настоящее время яm просто ищет строку пробелов, равную количеству пробелов, которые я ожидаю там найти, и затем заменяю их более или менее пробелами следующим образом:

- (IBAction)increaseSpacing:(id)sender{ 

  NSInteger spacing = [[NSUserDefaults standardUserDefaults] integerForKey:@"wordSpacing"];
  NSMutableString * oldString = [ NSMutableString stringWithCapacity:0];
  NSMutableString * newString =[ NSMutableString stringWithCapacity:0];

  for (int i = 0; i < spacing; i+=1) {
    [oldString appendString:@" "];
  }

  [newString setString:oldString];
  [newString appendString:@" "];

  [[[textView textStorage] mutableString] replaceOccurrencesOfString:oldString
                           withString:newString options:0
                                range:NSMakeRange(0, [[textView textStorage] length])];

  spacing += 1;

  [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInteger: spacing] forKey:@"wordSpacing"];

}

- (IBAction)reduceSpacing:(id)sender{

  NSInteger spacing = [[NSUserDefaults standardUserDefaults] integerForKey:@"wordSpacing"];

  if (spacing > 1) {

    NSMutableString * oldString = [ NSMutableString stringWithCapacity:0];
    NSMutableString * newString =[ NSMutableString stringWithCapacity:0];

    for (int i = 0; i < spacing-1; i+=1) {

      [newString appendString:@" "];

    }

    [oldString setString:newString];
    [oldString appendString:@" "];

    [[[textView textStorage] mutableString] replaceOccurrencesOfString:oldString
                                                        withString:newString options:0
                                                             range:NSMakeRange(0, [[textView textStorage] length])];
    spacing -= 1;
    [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInteger: spacing] forKey:@"wordSpacing"];

  }

}

Этот подход мне кажется неаккуратным, особенно при перемещении курсора с помощью клавиш со стрелками. Я мог бы просто изменить размер шрифта пробела, когда онs напечатано, но это также изменит высоту строки. Есть ли способ, которым я могу просто изменить ширину символа пробела? Заранее спасибо за помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос