NSTextView لا تحديثها بشكل صحيح على التمرير
-
21-08-2019 - |
سؤال
ولدي NSTextView مع كمية كبيرة من النص. كلما انتقل ومع ذلك، لا يتم تحديث عرض بشكل صحيح. هناك بعض القطع الأثرية التي لا تزال قائمة في أعلى أو أسفل من وجهة النظر. ويبدو أن وجهة النظر لا تجديد نفسها في كثير من الأحيان بما فيه الكفاية. إذا كنت انتقل ببطء شديد وجهة نظر تحديثات على الرغم بشكل صحيح. إذا أضيف الحدود إلى العرض يعمل كل شيء تماما، وعرض بلا حدود هو الذي لديه مشكلة. وهنا رابط لقطة:
والشكر
المحلول
هل تعيين setDrawsBackground
وcopiesOnScroll
propertes إما NSScrollView
أو NSClipView
؟
وأول شيء أود أن أقترح تحول قبالة "توجه الخلفية" ملكا للNSScrollView
:
[myScrollView setDrawsBackground:NO];
لاحظ أن هذا يجب تعيين على NSScrollView
، و<م> لا م> على NSClipView
المضمنة.
والمقتطف التالي من في قد يكون التوثيق ذات الصلة:
<اقتباس فقرة> إذا NSScrollView
الخاص يرفق على NSClipView
إرسال رسالة setDrawsBackground:
مع معلمة من NO
إلى NSScrollView
لديه تأثير إضافي من إرسال NSClipView
رسالة setCopiesOnScroll:
مع معلمة من NO
. الآثار الجانبية للارسال رسالة setDrawsBackground:
مباشرة إلى NSClipView
بدلا سيكون ظهور "مسارات" (بقايا من الرسم السابق) في عرض المستند كما هو تمريره ذلك.
نصائح أخرى
ويبدو أن حقل النص ليس حتى في منطقة التمرير ... هل أنت متأكد من شيء يكون لا تداخل ذلك؟
وكان لي مشكلة مماثلة - التحف تتطور عندما يتم تضمين NSTextView في scrollview آخر
(أي NSTableView).والتفت في الواقع <م> على م> وsetdrawsbackground، ثم أضاف لطيف اللون لجعلها تختفي مرة أخرى.
-(void)awakeFromNib{
NSScrollView *scroll = [self enclosingScrollView];
[scroll setBorderType:NSNoBorder];
[scroll setDrawsBackground:YES];
[scroll setBackgroundColor:[NSColor windowBackgroundColor]];
}
وهذا في تركيبة مع حدث عجلة التمرير اسمحوا لي أن استخدام NSTextView في NSTableView.
-(void)scrollWheel:(NSEvent *)theEvent{
NSScrollView *scroll = [self enclosingScrollView];
[[scroll superview] scrollWheel:theEvent];
}
وكان لي نفس المشكلة منذ بعض الوقت. أنا لا أتذكر كيف حلها.
وفي محاولة لوضع NSTextView لرأي آخر إذا كان superview هو طريقة عرض مخصصة. فقط لرؤية ما سيحدث.