Какао NSScrollView ужасно мало объяснено. Я надеюсь, что кто-то здесь знает, о чем все это, и может сэкономить мне несколько секунд.
Итак, у меня есть собственный NSView. Я реализую -drawRect: чтобы он что-то рисовал, заливал себя цветом, что угодно. Затем у меня есть NSScrollView, обертывающий его (настраиваемый через интерфейс Builder).
Теперь внутреннее, пользовательское представление должно иметь размер, превышающий размер, который умещается во внешнем представлении прокрутки - для его прокрутки. Это я понимаю. Я случайно настроил его так, чтобы представление прокрутки приспосабливалось к размеру окружающего окна, но это не должно иметь значения.
Я переопределил метод -frame моего внутреннего представления, чтобы получить кадр размером не менее 1000x1000.
- (NSRect)frame {
CGFloat w = 1000;
CGFloat h = 1000;
if (self.superview.bounds.size.width > w)
w = self.superview.bounds.size.width;
if (self.superview.bounds.size.height > h)
h = self.superview.bounds.size.height;
return NSMakeRect(0, 0, w, h);
}
Вот результат, который мне трудно интерпретировать:
- Я могу прокручивать, когда представление прокрутки охватывает область, меньшую, чем 1000x1000
НО
Я не знаю ничего, кроме этого момента. Это кажется подобно тому, как прямоугольник для рисования обрезается до положения вида прокрутки в окне, размера или чего-то еще, но он не учитывает прокручиваемое «местоположение».
Следует отметить, что я действительно не ожидаю, что что-нибудь еще случится. Я чувствую, что пропускаю кусок, но не могу найти какой. Извините за стену текста, но я не могу объяснить лучше сейчас. Я надеюсь, что легче ответить, чем спросить.
С уважением и надеждой,
Не Рик Эстли