我想重新创建一些功能,可以在具有NSScrollView的苹果日历应用程序(osx)中看到。当您在日历应用程序中上下滚动查看视图的边界时,它不仅仅是一个空白区域,而且会从日历本身扩展网格线。我想知道如何做到这一点?我希望答案会非常简单。像绘制内容视图比需要更大,然后在滚动视图上设置一些属性来限制它认为是可滚动内容的内容。在翻阅NSScrollView文档后,我还没有找到任何线索。如果答案相对简单,请原谅我,并感谢您提供任何答案。NSScrollView,在视图边界外的弹性和绘图
4
A
回答
0
它很像NSScrollView文档所说的。使用:
-(void)setDocumentView:(NSView *)aView
在上面设置一个NSClipView。这将保存比显示部分大的绘制内容,并将不可见的部分滚动到视图中。你还应该看看“可可制图指南”。
0
这是从别人的代码在这里采用Stackoverflow。该代码通过表格顶部绘制水平网格。我想你可以改变它来绘制垂直网格。把它放在你的NSTableView
子类:
- (void)drawGridInClipRect:(NSRect)clipRect
{
NSRect boundsToDraw = clipRect;
CGFloat yStart = 0;
if (clipRect.origin.y < 0) {
while (yStart > NSMinY(boundsToDraw)) {
CGFloat yRowTop = yStart - self.rowHeight;
NSRect rowFrame = NSMakeRect(0, yRowTop, boundsToDraw.size.width, 1.0);
[[self gridColor] set];
NSRectFill(rowFrame);
yStart -= self.rowHeight;
}
}
}
+1
这个答案似乎有最大的潜力,也许你可以详细说明一下? 1.什么将调用drawGridInClipRect方法? 2.它将如何知道被叫?等等... – Sam
0
设置了滚动的背景得出正确的背景...因为没有动态内容
0
可以绘制在文档外,将重复的日历效应查看与一个半私有方法:
- (void)drawBackgroundOverhangInRect:(NSRect)dirtyRect {
[[NSColor cyanColor] set];
NSRectFill(dirtyRect);
}
后可用10.7
相关问题
- 1. 在UITableViewCell的边界之外绘图
- 2. 在组件的边界外绘图
- 3. 在iOS上,drawRect无法在视图边界之外绘制?
- 4. 无法在NSScrollView中绘制视图
- 5. iOS为部分视图绘制边界
- 6. R水平图删除外部边界(调整绘图边框)
- 7. NSScrollView内的图像在其他视图上绘图
- 8. NSMatrix绘图外界
- 9. 何处在自定义视图中设置绘图的边界
- 10. 防止NSButtonCell图像在其包含NSScrollView以外的绘图
- 11. 无边界形式的绘图图形
- 12. 删除Matlab绘图边界
- 13. OpenCV绘图边界框CenterPoint
- 14. CorePlot图中的外边界
- 15. Scipy在图像中绘制边界框
- 16. 使用matplotlib-basemap在边界上绘图
- 17. 在R中绘制地图 - 只显示外部边界
- 18. 设置视图边界
- 19. xmgrace:数据集的绘图边界
- 20. 计算GDI +绘图的边界框
- 21. Matlab连接绘图中的外边界点
- 22. 在nsscrollview中自定义绘图nsview
- 23. 如何在NSScrollView的弹性部分绘制背景?
- 24. 自定义视图组中的子视图不在边界
- 25. 核心绘图 - 绘图标签越过边界
- 26. 在iOS的动画视图中加入硬性边界
- 27. 强制绘图()使用特定边界
- 28. NSScrollView子视图缩放
- 29. 在类中统一视图边界
- 30. WPF - 位图 - 额外的边界?
我知道它已经有一段时间我上次张贴了这个,但是我还没有设法达到我想要的。我尽我所知地回顾了所有关于滚动视图和剪辑视图的苹果文档(+谷歌搜索了很多),我仍然没有进一步向前。你能否进一步解释你的答案,也许用一些代码来演示?设置剪辑视图的边界只会改变滚动视图内部的内容...而不是可滚动边界之外的内容。谢谢。 – lateAtNight