问题标签 [ikimagebrowserview]

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.

0 投票
1 回答
915 浏览

cocoa - 告诉 IKImageBrowserView 不要安排预加载

对于我们重写的开源 iMedia 框架项目(目前有数十个开发人员正在使用),我们正在切换到 IKImageBrowserView,并且在缓存方面遇到了麻烦。

似乎 IKImageBrowserView 喜欢预加载/预取图像缓存,作为低优先级的后台任务,尽可能多的不可见项目。这可能很有用,但如果我们能提供帮助,我们不想加载 CPU(以及用于远程检索图像的网络)。

特别是因为我们有自己的 FIFO 缓存机制(因此我们可以将缩略图数据与其他视图共享到相同的数据中),所有这些都是将缓存填满,然后导致旧项目被转储。

有没有办法禁用这个预加载器的调度?(即使有一个我们现在可以小心翼翼地使用的未记录 API,我也会确保打开一个请求以将其变为公共 API,因为能够关闭这个危险的功能非常关键。)

这确实会影响很多应用程序。您可以建议的任何解决方法将不胜感激。

顺便说一句,一些相关的讨论: http: //lists.apple.com/archives/cocoa-dev/2007/Nov/msg02011.html

0 投票
2 回答
4142 浏览

cocoa - 如何解释触控板捏合手势以缩放 IKImageBrowserView

我有一个IKImageBrowserView我希望能够在最近的 Mac 笔记本电脑上使用多点触控触控板进行缩放。

Cocoa 事件处理指南,在处理手势事件部分中说:

放大访问器方法返回表示放大系数的浮点 (CGFloat) 值

..并继续显示通过将高度和宽度乘以来调整视图大小的代码magnification + 1.0

这似乎不是缩放的正确方法IKImageBrowserView,其zoomValue属性被限制在 0.0 和 1.0 之间。

那么,有谁知道如何将事件解释-[NSResponder magnifyWithEvent:]为放大IKImageBrowserView

0 投票
1 回答
2395 浏览

cocoa - 如何在 Cocoa 中实现基于缩略图的用户选择视图?

我有一个我认为非常简单的需求,但我不知道如何去实现它。

在我的界面中的各个点,用户被要求选择一些相当直观的东西(比如选择页面布局或颜色选项)。这些选择是从一组预定义的选项中做出的。通常你会使用 NSPopUpButton,或者 NSTableView,但我希望用户看到每个选择选项的缩略图。这些缩略图也应该是合适的尺寸——至少 100x100 像素。每个缩略图还应附有文本标签。一次只允许选择一个。

Apple 在 iWeb 中实现了类似这样的功能:

iweb http://img187.imageshack.us/img187/5744/iweb.jpg

当然,你已经习惯了用小图标看到这样的东西:

代码

我认为 NSCollectionView 是开始的地方,但我只见过在更复杂的场景中使用它(例如:显示目录的内容,支持拖放等)因此,大多数我发现的代码相当复杂。

是否有更简单的解决方案来使用静态、预定义的数据填充此视图并只允许进行简单的选择?换句话说,我正在寻找弹出按钮的功能,但需要不同的用户界面。

更新:解决方案

我按照建议使用了 IKImageBrowser。本教程非常有帮助。在 IB 中:我只是在我的界面中制作了一个 IKImageBrowser,将其包裹在一个滚动视图中,并使其成为浏览器对象的数据源。在代码中:按照教程中的说明在我的控制器中实现数据源协议,将allowMultipleSelection 和allowEmptySelection 设置为NO,完全按照教程中的说明使用URL 图像表示创建自定义图像对象。

然后,为了获得选择,我编写了以下方法以在用户单击“确定”按钮时触发:

该教程非常有用——只需忽略有关添加图像和缩放滑块等的内容。

0 投票
3 回答
1495 浏览

objective-c - 设置绑定属性时观察 NSUserDefaultsController 不起作用

这是设置:我有一个 IKImageBrowserView 的子类,它的zoomValue属性绑定到VFBrowserZoomValueshared 中的一个键NSUserDefaultsController。我有一个NSSlidervalue绑定绑定到同一个键。

zoomValue这可以完美地从滑块更改浏览器。

我正在尝试-magnifyWithEvent:在我的IKImageBrowserView子类中实现以允许在触控板上使用捏合手势缩放浏览器。

这是我的实现:

这会zoomValue正确更改浏览器。问题是NSUserDefaults没有用新值更新。

在应用程序的其他地方,我有一个-observeValueForKeyPath:ofObject:change:context:观察浏览器的zoomValue. 如果我在该方法中记录浏览器的缩放值、滑块的值和默认值,我会看到浏览器的 zoomValue 没有被推入 NSUserDefaults 并且滑块没有更新。

我试过-magnifyWithEvent:用调用来包围该方法,-{will,did}ChangeValueForKey但没有效果。

0 投票
2 回答
1730 浏览

cocoa - 删除 IKImageBrowserView 的拖放行为

默认情况下(看起来),IKImageBrowserView 允许拖放到 Finder 中的位置。我想关闭此行为,但不确定如何操作。我在想也许实现 NSDraggingDestination 协议并覆盖它可以解决这个问题,但到目前为止它对我没有用。

谢谢你的帮助!

0 投票
1 回答
723 浏览

objective-c - IKImageBrowserView 似乎没有正确绑定

我的问题与 Interface Builder 和 IKImageBrowserView 没有如我预期的那样实现绑定有关。

我有一个相当长的关键路径可以到达一个 NSArrayController,我想在 IKImageBrowserView 中显示它的内容。

这是我将 NSTextField 的显示模式绑定到 currentOrder.imagesArray.unvalidatedImages.arrangedObjects.@countAppDelegate 的关键路径。这很好用,并为我提供了属于当前订单的图像数组中未验证项目的数量,这是它应该做的。

当我尝试将以下关键路径绑定到 AppDelegate 的 IKImageBrowserView 的content:currentOrder.imagesArray.unvalidatedImages.arrangedObjects时,Interface Builder 没有给出错误,而是表现得好像我没有输入任何内容一样。当我单击返回检查器时,绑定键路径再次为空白。

但是,它确实将以下内容记录到控制台: Ignoring exception related to working with bindings: NSUnknownKeyException, [<NSCustomObject> addObserver:<IKImageBrowserView ...> forKeyPath:@"currentOrder.imagesArray.unvalidatedImages.arrangedObjects" ...] was sent to an object that is not KVC-compliant for the "currentOrder" property.

我的 AppDelegate 实现currentOrder为保留的@property,所​​有子键也是@properties。我可以确定这些属性是 KVC 好的,因为上面的 NSTextField 能够毫无问题地读取更改。有趣的selectionIndexes是,IKImageBrowserView 能够绑定到...unvalidatedImages.selectionIndexes,只有content那个不能。

我已经实现了一个解决方法,我在我的 nib 文件中放置了一个 NSArrayController 并将 Content Array 绑定到...arrangedObjects然后将 IKImageBrowserView 绑定到数组控制器,但是很高兴有一个更整洁的解决方案,或者至少知道我是否在做任何事情错误的。

谢谢!

0 投票
4 回答
1601 浏览

objective-c - IKImageBrowserView 缩略图问题

我从 Apple 官方网站下载了名为“IKImageKit Demo”的 IKImageBrowserView 示例。

但是我发现了一个问题。

例如:

当我从名为“A”的文件夹中导入图像时,我删除了一个图像。

然后我导入其他图像(名称与删除图像相同),缩略图在

IKImageBrowser 不会改变。

我该如何解决这个问题?谢谢!

视频展示:http ://www.youtube.com/watch?v=f3Jue9wOdUI

0 投票
1 回答
1524 浏览

cocoa - Cocoa:如何使 IKImageBrowserView 的背景透明?

如何使 IKImageBrowserView 的背景透明?界面生成器中似乎没有背景颜色选项。

我试过的:

我从来没有使用过Core Animation,但是我看到IKImageBrowserView有一个setBackgroundLayer方法,所以我尝试了以下,没有效果:

这是IKImageBrowserView的类参考。

0 投票
2 回答
907 浏览

cocoa - 将前景层添加到 IKImageBrowserView 项目并开启垃圾收集时,CALayer 闪烁

我正在尝试实现一种类似于 Apple 的 ImageBrowserViewAppearance 示例代码中的技术(位于此处:http: //developer.apple.com/library/mac/#samplecode/ImageBrowserViewAppearance/Introduction/Intro.html),其中CALayers 在 IKImageBrowserView 中的项目之上生成,以自定义图像浏览器中对象的外观。

但是,当我打开垃圾收集时,我遇到了一个奇怪的问题,我可以在 Apple 示例代码中重现它。只需在目标中打开垃圾收集,然后构建并启动 ImageBrowserAppearance 示例应用程序。然后,使用“添加照片...”按钮将一些照片添加到图像浏览器。

现在,单击 IKImageBrowserView 的空白部分,然后单击并拖动以开始在浏览器视图中选择多个项目。当您四处拖动选择框时,您应该注意到有时某些项目的图钉和光泽叠加层会闪烁并短暂出现在 IKImageBrowserView 的左下角。所有的 CALayers 似乎偶尔都会这样做,我看到周围的白色滑动区域也闪烁到左下角。

当我在自己的代码中模仿该技术时,我(毫不奇怪)也可以重现此徽章闪烁。但是,当垃圾收集关闭时,这个问题就会消失。

有人知道这里可能出了什么问题吗?我想在我的应用程序中结合这种技术使用垃圾收集,但闪烁有点烦人。

0 投票
2 回答
788 浏览

ikimagebrowserview - IKImageBrowserView 和 ImageTitle

我有一个 imagebrowserview 正确显示一个充满照片的文件夹,但它没有显示每张照片的图像标题......

有教程告诉我这是如何工作的吗?

问候

AGW