NSTextView не обновляется должным образом при прокрутке

У меня есть NSTextView с большим количеством текста. Однако всякий раз, когда я прокручиваю, представление не обновляется должным образом. Есть некоторые артефакты, которые остаются в верхней или нижней части представления. Похоже, что представление не обновляется достаточно часто. Однако, если я прокручиваю очень медленно, вид обновляется правильно. Если я добавляю границу к представлению, все работает отлично, проблема без полей. Вот ссылка на скриншот:

Спасибо


person EightyEight    schedule 11.05.2009    source источник
comment
Может ли кто-нибудь объяснить, почему этот вопрос был отклонен? Мне кажется резонный вопрос.   -  person e.James    schedule 29.05.2009
comment
dw я проголосовал против: P +1   -  person Brock Woolf    schedule 20.09.2009


Ответы (4)


Вы установили свойства setDrawsBackground и copiesOnScroll для NSScrollView или NSClipView?

Первое, что я бы посоветовал, это отключить свойство «рисует фон» у NSScrollView:

[myScrollView setDrawsBackground:NO];

Обратите внимание, что это должно быть установлено для NSScrollView, а не для встроенного NSClipView.

Следующая выдержка из документация может иметь значение:

Если ваш NSScrollView содержит NSClipView, отправка сообщения setDrawsBackground: с параметром NO на NSScrollView имеет дополнительный эффект отправки NSClipView сообщения setCopiesOnScroll: с параметром NO. Побочным эффектом отправки сообщения setDrawsBackground: непосредственно в NSClipView будет появление «следов» (остатков предыдущего рисунка) в представлении документа при его прокрутке.

person e.James    schedule 28.05.2009
comment
Я сам только что столкнулся с этой проблемой. Настройка [scrollView setDrawsBackground:YES] устранила проблему с артефактами. В других новостях, очень странное чувство найти свой собственный ответ при поиске решения :) - person e.James; 04.08.2009

Похоже, что текстовое поле даже не находится в области прокрутки... Вы уверены, что его что-то не перекрывает?

person Community    schedule 24.05.2009
comment
Я не уверен, нет. Однако, если я прокручиваю вниз, текст появится, выровненный с нижней частью элемента управления прокруткой. Мусор исчезнет, ​​заменив четкую прорисовку текста. - person EightyEight; 25.05.2009
comment
Вы пытались перенастроить свой xib? Иногда мне это помогает. - person ; 28.05.2009

У меня была аналогичная проблема - артефакты возникают, когда NSTextView встроен в другой вид прокрутки (т.е. NSTableView).

На самом деле я включил setdrawsbackground, а затем добавил приятный цвет, чтобы он снова исчез.

-(void)awakeFromNib{
    NSScrollView *scroll = [self enclosingScrollView];
    [scroll setBorderType:NSNoBorder];
    [scroll setDrawsBackground:YES];
    [scroll setBackgroundColor:[NSColor windowBackgroundColor]];
}

Это в сочетании с событием scrollWheel позволяет мне использовать NSTextView в NSTableView.

-(void)scrollWheel:(NSEvent *)theEvent{
    NSScrollView *scroll = [self enclosingScrollView];
   [[scroll superview] scrollWheel:theEvent];
}
person jtf    schedule 07.01.2015

У меня была такая же беда некоторое время назад. Я не помню, как я это решил.

Попробуйте поместить NSTextView в другое представление, если суперпредставление является настраиваемым представлением. Просто посмотреть, что будет.

person cocoafan    schedule 25.05.2009
comment
Я попробую. Хотя приятно осознавать, что я не один с такой проблемой. - person EightyEight; 26.05.2009