【问题标题】:NSTextView does not scroll when created with NSCollectionView使用 NSCollectionView 创建时 NSTextView 不滚动
【发布时间】:2014-04-15 16:03:03
【问题描述】:

我有一个 NSTextView,它位于一个 NSCollectionViewItem 的视图上。我为用户提供了隐藏 NSTextView 的选项,而是在同一视图中的位置显示一个 NSView 对象。

但是,当我在隐藏 NSView 对象并与 NSTextView 重叠的情况下运行程序时,在 NSTextView 中滚动无法正常工作;垂直滚动条在那里,并根据 NSTextView 中内容的大小调整其大小。但是,实际滚动只能通过突出显示 NSTextView 的内容并向上或向下拖动来实现。更重要的是,如果我在没有连接到 NSCollectionViewItem 和 NSCollectionView 的情况下重新创建视图,它可以正常滚动。这个问题不仅发生在与 NSTextView 重叠的自定义视图中,而且发生在与 NSTextView 重叠的任何视图对象(按钮、图像井等)中,即使视图对象被设置为隐藏。

如果使用 NSCollectionView 创建 NSTextView 并且有一个视图对象与之重叠,为什么只有在突出显示和向上或向下拖动时才能滚动?

【问题讨论】:

    标签: objective-c macos cocoa nsview nscollectionview


    【解决方案1】:

    好吧,我找到了一个没有什么意义但似乎工作正常的解决方案。我继承了 NSTextView 并用这个覆盖了 mouseEntered:

    -(void) mouseEntered:(NSEvent *)theEvent {
    
        NSScrollView *scrollView=(NSScrollView*)self.superview.superview;
        NSScroller *scroller=scrollView.verticalScroller;
        [scrollView setVerticalScroller:nil];
        [scrollView setVerticalScroller:scroller];
    }
    

    如果有人知道为什么会发生此问题或有更好的解决方案,而不仅仅是猜测,请发布

    【讨论】:

      猜你喜欢
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多