问题标签 [nsscrollview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - NSWindow 中的 NSScrollView
我在 NSWindow 中有一个 NSScrollView,但它似乎被禁用了。看起来它可以工作,但滚动条对鼠标或滚轮没有响应。
当我将完全相同的 NSScrollView 放在新 XCode 项目的窗口中时,它可以完美运行。我制作窗口的方式会阻止滚动工作。
我已经能够将其简化为这个例子:
有任何想法吗?
objective-c - NSScrollView 问题
我正在尝试使用的 NSScrollView 遇到一些问题,可以使用一些帮助。我已经阅读了 NSView、NSScrollView 和其他一些指南和参考资料,以及这里的问题和 cocoadev,但仍然无法弄清楚这些。
(我的视图子类的代码可以在下面找到。)
我的总体目标是提供一个类似于 KGChart 的界面,这是一个 PC 独有的针尖图表制作工具。(KGChart 网站)
如何将我绘制的内容保留在滚动视图中?我的 -drawStitch 方法是在鼠标事件期间执行的,它在滚动视图的文档视图中绘制一个带有符号的矩形(目前只有带有“+”的黑色)。当我将它滚动到视线之外并返回时,它就消失了,我需要以某种方式保留它。我的想法是尝试使用 2D 数组来跟踪针迹,但我认为大型画布的性能会受到影响(我想做 2,000x2,000,但我会满足于 500x500)。
如果您查看我的程序运行的图片,您可以看到网格颜色的差异。绘制网格的代码在-drawRect中,颜色设置为grayColor。程序启动时,可见网格是较浅的颜色,但在我滚动时显示的画布部分颜色较深。我认为这与 -drawRect 被调用有关,导致它重新绘制网格,但我不知道为什么它会使笔触变暗,因为它们的不透明度应该已经是 1.0。此外,如果我完全滚动原始框架并返回,那里的网格也会更暗。
有没有办法让我在程序开始时绘制不在 drawRect 中的网格,这样它就不会被重绘?我尝试了 -awakeFromNib 和 -initWithFrame,即使使用 -lockFocus,但它不起作用。我意识到第一个可能没有工作,因为没有框架可以绘制。
最终我需要弄清楚填充工具之类的东西,所以最好使用 Core Graphics 之类的东西,还是常规 API 可以?我宁愿使用后者,因为我对它比 CG 了解更多,但我也读了一点。
最后说明:我正在使用垃圾收集,并且我已经翻转了视图和它所在的窗口,如果这些事情很重要的话。
显然,我对此很不满意,所以感谢您的所有帮助!
macos - 同步两个 NSScrollView
我阅读了文档Synchronizing Scroll Views,并且完全按照文档进行操作,但是存在一个问题。
我想同步一个 NSTableView 和一个 NSTextView。先让NSTableView监控NSTextView,当我滚动TextView的时候一切正常,但是当我尝试滚动TableView的时候,我发现TableView一开始会跳转到另一个地方(可能向后几行),然后从那个地方继续滚动.
即使在我让 TextView 监控 TableView 之后,这个问题仍然存在。
有谁知道有什么问题?我不能同步 TableView 和 TextView 吗?
编辑: 好的,现在我发现 TableView 会回到上次滚动后的位置。比如TableView的顶行是第10行,然后我滚动TextView,现在TableView的顶行是第20行,如果我再次滚动TableView,TableView会先回到第10行,然后开始滚动。
objective-c - 使用日期过滤 NSSCrollView
我在使用日期列过滤 NSScrollViews 内容时遇到问题。
我有一个实体,它包含多个属性,例如Name、AccountNumber、DateOfPurchase等。该实体绑定到 NSArraycontroller。
另外,我有一个 NSScrollView,它的列绑定到这个 NSArrayController。
问题是我想过滤此 NSScrollView 记录以仅显示它们受 2 个日期间隔限制的记录。(例如:2010 年 10 月 2 日之后和 2011 年 5 月 5 日之前)
我该怎么做?
cocoa - 你如何动画滚动和原子缩放?
我的应用程序中有一个自定义视图,它是分层支持的并嵌入在NSScrollView
. 我允许用户放大(这是通过增加我的自定义视图的大小来实现的)。但是,我在放大任意点时遇到了麻烦,因为NSScrollView
在我将其指向新的滚动点之前,它一直在阻碍并导致视图四处跳动(通常是视图的原点)。我真的很想使用 a CAScrollLayer
,因为我知道我肯定可以使用它进行缩放并让它平滑移动,但是我失去了所有内置的滚动功能。
有什么方法可以CAScrollLayer
在中利用NSScrollView
,可能支持NSClipView
?如果不是,CAScrollLayer
实际上有什么目的?是否可以通过不同的方法自动更改视图的大小和滚动点并使其具有动画效果?
简而言之,是CAScrollLayer
完全没用,还是大部分没用?
更新
CALayer
通过创建一个子类来显示我的视图内容,我已经让我的内部视图少跳动了。我没有使用布局约束来调整大小,而是将其大小调整为-resizeWithOldSuperlayerSize:
. 不过,我仍然无法同时更改视图的帧大小和原点并获得流畅的动画。要了解我要查找的内容,请在“预览”中打开图像并放大和缩小。它以平滑的方式围绕图像的中心进行缩放。
cocoa - NSTableView 重绘不更新显示,选择粘贴
虽然我知道这个问题的解决方案,但如果有人可以向我解释这个解决方案,我很感兴趣。我也想把它拿出来,因为我在网上找不到任何关于这个问题的提及,而且我花了几天时间才找到了几个小时。我有一个 NSTableView 在重绘及其选择方面表现得很奇怪。问题看起来像这样:
表格内容淡入,而不是在它出现在屏幕上时立即出现。滚动内容时,新出现的行也会淡入。当您进行选择(单个或多个)并将其滚动到屏幕外,然后进行另一个选择(应该替换,而不是添加到第一个选择)时,第一个选择未正确清除。如果您滚动回它,它仍然存在,除了您的新选择。这是一个显示更新问题,而不是选择问题 - 即您的新选择有效,只是显示错误。
我通过绑定到的 NSArrayController、底层数组、排序、所有连接和设置等来跟踪这一点,但所有这些都与它无关。
解决问题的方法是:在 View Effects(最右侧)Inspector 中,取消选中 Window 主视图的“Core Animation Layer”。
谁能解释这里发生了什么,也许可以改进解决方案?
objective-c - 如何在单个可滚动的 NSScrollView 中添加 NSTextView 和 NSMatrix 控件?
我是 Mac 开发的新手。
我想在单个 Scrollable NSScrollView 中添加三个控件。
1)NSTextView。2)NS矩阵。3) NSTextView。
请注意,nstextview 中的文本可以是动态高度......并且文本视图不应该有滚动。
这是我正在寻找的屏幕截图 -
如何在 nsscrollview 中添加这三个视图?请帮忙!
更新 1 - 我可以在 NSView 中添加这些控件吗?
objective-c - 隐藏在 Lion 中的滚动条。如果人们不使用触控板,他们如何水平滚动?
我有一个应用程序,在窗口底部有一个标签列表。这个列表会随着时间的推移而增长,需要水平滚动。这以前很好,但现在在 Lion 中,它们的滚动条会自动隐藏。如果使用没有水平滚动的鼠标,现在基本上无法在 Lion 中滚动这些。解决问题的最佳实践是什么?我是否需要摆脱滚动视图并将其更改为“更多”列表或其他内容?
objective-c - 使用自定义 NSScrollView 模拟表格
如何创建类似于表格的自定义滚动视图?我想要一个与 documentView 水平滚动的标题,但始终位于顶部(滚动条从其下方开始)。
我附上了一张我到目前为止所拥有的图片:
目前,我只是在documentView中渲染标题,我确信我可以简单地将它绘制在可见矩形的顶部,但是如何向下移动垂直滚动条?
我试过改变 contentView 的帧大小,但我没有运气。如果有人知道实现这一点的正确方法,我将不胜感激。谢谢!
osx-snow-leopard - Snow Leopard vs. Lion 中的 NSScrollView 行为(NSScroller 透明度)
我在 InterfaceBuilder (XCode 4) 中设置 NSScrollView 时遇到问题,因此它在 Snow Leopard 和 Lion 下看起来都不错。
我有四个 NSView,其中包含使用程序时需要访问的控件。我已经将视图放置在一个 NSScrollView 的视图中,当窗口变得太小而无法显示所有内容时,它应该显示一个垂直滚动条。(视图是一个自定义视图,它[customView isFlipped] == YES
作为唯一的自定义返回。)
NSScrollView 设置为随着程序窗口的高度垂直自动调整大小。滚动视图内的自定义视图设置为与 NSScrollView 的宽度水平自动调整大小。NSScrollView 显示垂直滚动条并在显示完整内容时自动隐藏它。
使用这种配置,在 Snow Leopard 下一切正常。但是当我使用 Lion 时,垂直滚动条不会显示在自定义视图的顶部,而是显示在右侧的不透明灰色条内。当滚动条被隐藏时,这不会消失,要么是因为窗口足够大,要么是因为 Lion 在不使用时隐藏了滚动条。这看起来真的很不专业,因为我有一些元素跨越了自定义视图的整个宽度,现在从窗口边框停止 15 pts。当我将自定义视图的宽度设置为 NSScrollView 的宽度(一个 NSScroller 的宽度为 +15pt)时,我可以使它在 Lion 下正常运行,但是如果垂直滚动条是,则视图在 Snow Leopard 中水平滚动显示。有没有办法让它在两个系统中看起来都正确?
我正在使用 Snow Leopard 10.6 SDK 和 Leopard 10.5 作为最低操作系统进行编译。