每个消息都包含具有高度的NSTextVIEw实例以适合所有文本。
所有我需要的是在用户选择文本拖动鼠标足够远的时候启动NSScrollVIEw(其中包含NStableVIEw实例)的自动滚动。不幸的是,自动滚屏不会出现。如果在文本视图之外的任何地方拖动都会成功。
我试图通过简单地从NSTextVIEw子类“mouse dragged”-event(如从this article的例子)中推送NSEvent-instance直接调用autoscroll:-method:
- (voID)mouseDragged:(NSEvent *)event{ [self.scrollVIEw autoscroll:event];}
当我覆盖所有的鼠标事件并实现了所有的文本选择,这种方法经常被调用。但是自动滚屏似乎不起作用。
UPDATE
我想到在调用-autoscroll之前:-method必须是-mouseDown:同一个对象。但它打破了我的文本选择机制。这个点甚至不是第一响应者,除了mouseDown:-method之外一定没有。
解决方法 通常,文本视图属于自己的滚动视图。即使这样大到足以显示所有的文字而不滚动,它仍然在那里。调用-autoscroll:在该滚动视图内的任何内容(可能包括该滚动视图本身?)将只是尝试滚动该滚动视图,而不是包含表视图的滚动视图。尝试调用-autoscroll:在层次结构中较高的视图。 self.scrollVIEw.supervIEw,表单元视图或表视图。
请注意,即使包含文本视图的单元格视图完全在屏幕上,表视图的滚动视图也将保持滚动。事实上,它可能会继续滚动到目前为止,它在另一个方向的屏幕上。基本上,它不知道你正在文本视图中选择,所以当选择一直延伸到文本视图的边缘时,它不会停止。
另一种方法可能是尝试使用“裸”文本视图,而不包含滚动视图。我不认为IB会让你这样做,所以你必须以编程方式做。尽管如此,裸体文字视图不能很好的与自动布局。
总结以上是内存溢出为你收集整理的osx – 如何以编程方式调用NSScrollView autoscroll-method全部内容,希望文章能够帮你解决osx – 如何以编程方式调用NSScrollView autoscroll-method所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)