问题标签 [nsimageview]

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 投票
0 回答
845 浏览

cocoa - 无法动态调整 NSImageView 的大小

我有一个包含动态生成的 NSImage 的 NSImageView。当我更改显示的图像时,我想动态调整 NSImageView 的大小,以便它精确地包裹新图像,并调整封闭窗口的大小,以便 NSImageView 和窗口的每个其他部分之间的空间保持不变。(请注意,图像视图的缩放设置为无,因为我希望它的图像始终以其物理尺寸显示。)为了说明,假设我从图像视图中的一个小图像开始。如果我用大图像替换它,我希望 NSImageView 和封闭窗口都调整大小以适应它,而不影响任何其他元素的大小或间距。

目前,每当通过步进器或关联的文本字段更改放大级别时,我都会调用以下方法。虽然重新生成图像并将其加载到 NSImageView 工作正常,但调整 NSImageView 和封闭窗口的大小却不行。

无论我是增加还是减少放大率值,导致图像变小或变大,NSImageView 和窗口的大小都保持不变。被注释掉的三个setNeedsDisplay:调用即使没有注释也没有效果——我试图确定问题是否与控件在调整大小后不重绘有关,但调用没有效果。奇怪的是,我的NSLog调用表明 imageView 的框架确实采用了请求的大小,因为它们产生了以下输出:

当然,实际显示不会改变。

有趣的是,在 Interface Builder 中或以编程方式将 imageView 的框架样式更改为“无” [self.imageView setImageFrameStyle:NSImageFrameNone],让我的行为更接近我想要的。使图像变大,否则它会被图像视图剪切,确实会导致图像视图和窗口变大。然而,从这一点来看,缩小图像并不会导致图像视图或窗口相应地调整大小。“无”是唯一显示这种稍微正确的行为的图像框架样式——所有四种带边框的样式(即斜角[默认]、按钮、凹槽和照片)都显示了与上述相同的完全错误的行为。

我遇到了一个有类似问题的人。奇怪的是,当他的图像视图的框架样式设置为时,他只观察到有问题的行为NSImageFrameNone,而这是唯一给我一些正确行为的值。我尝试在调整大小之前将框架样式修改为非无值,之后修改为无,因为这解决了其他人的问题,但对我来说,这产生了与我最初将框架样式设置为“无”时相同的行为.

您提供的任何帮助将不胜感激。谢谢!

0 投票
1 回答
473 浏览

background-color - 如何在 MacO 的 NSImageView 中显示 .bmp 以使某种颜色透明?

我有一些 .bmp 文件有一些颜色(可能是黑色),当图形显示在表单顶部时应该显示为透明,因此表单颜色来自透明区域。但默认情况下,当我将这些图像放在图像视图中时,黑色/透明区域显示为黑色!

我想我需要: - 更改 NSImageView 显示图像的方式,以便某种颜色是透明的,或者 - 以某种方式修改 .bmp 文件以使该颜色适合 NSImageView 中的透明度

但我对图形文件、透明度(alpha)、NSImageView 和图像编辑工具都不太了解。我正在尝试使用 Gimp,但是……不确定我在做什么。当前的 .bmp 文件中似乎已经存在一种应该透明的颜色。

我确信设置 NSImageView、编辑我的文件或为图像制作蒙版很简单,但我还不知道怎么做。我在 IB 中查看了 NSImageView 的各种过滤器,但没有找到在哪里设置透明颜色,也没有找到如何从图像文件中获取该颜色以确​​保我使用正确的值。

提前感谢您的任何帮助。(我试图发布一些图片,但因为我是新人,所以我不能。)

0 投票
1 回答
1213 浏览

cocoa - 如何翻译和缩放 NSImage?

到目前为止,我已经构建了一个允许用户将图像拖放到 NSImageView 上的应用程序。但是,我希望能够通过简单地单击任何图像并按住鼠标按钮来移动它的位置来移动这些图像。

设置图像后如何操作 NSImageView 进行平移/缩放?那可能吗?我已经阅读了有关 NSAffineTransform 的信息,但它似乎是在创建图像本身之前移动图像。我已经在画布上有图像,我只想单击并按住图像并用鼠标移动它。请帮助任何人!

0 投票
2 回答
1424 浏览

objective-c - 如何将 NSImageView 带到另一个 NSImageView 的前面或后面?

我有一个 NSTableView,它包含我所有 NSImageView 的名称,并且根据添加 NSImageViews 的顺序,最后一个将在前面。

但是如果我希望用户能够将 NSImageViews 放在另一个前面,我该怎么做呢?

提前致谢。

0 投票
4 回答
12116 浏览

objective-c - NSImageView 子类中未调用 mouseEntered 和 mouseExited

我创建了一个子类NSImageView来捕获mouseEnteredmouseExited事件。但只有mouseUpmouseDown事件被调用。如何捕获子类中的mouseEnteredmouseExited事件NSImageView

0 投票
0 回答
576 浏览

macos - 拖放:NSView 认为源是一个图像,它不是

我有两种看法。1. 一个视图有一个带有图像的 NSImageViews 网格。2. 另一个视图有一个放置拖动图像的潜在位置网格。

我想我拖着工作。如果我从视图 1 中单击并拖动图像,它可以正常工作,但是当我尝试放置它时,源图像的路径是我桌面上的一个图像,它甚至不是我的项目的一部分。下面代码的结果是 CarryData = nil,但我用 NSLog 进行了一些测试,发现它正在发送项目外部的图像的路径,而不是我的桌面。

这是我实现的一些 D&D 协议方法。myDragState 只是我用来突出显示拖动当前悬停的网格空间的枚举。

在初始化...

然后是协议方法

编辑:所以我想通了。问题实际上出在源头上。我没有正确地将它复制到 PBoard。我的代码是:

现在,当图像显示时,我得到了一些奇怪的效果。当图像被放置在目标图像视图中时,它们正在调整大小,但更大的可拖动版本也仍然出现。所以,我在图像视图上得到了两个图像。

0 投票
1 回答
1676 浏览

cocoa - 在 Cocoa 中操作 NSImage 的像素

我想根据一些变量修改 NSImage 像素的颜色,而不使用太多依赖于工具包的库(例如:CIImage)。这样以后我就可以专注于像素操作算法并保持它们独立于平台。

我的方法是继承 NSImage 并添加一个属性

在启动期间,我会:

现在,当我尝试更新图像时,我会这样做:

但是图像没有改变。我不确定是否必须使用表示或将包含的 NSImageView 更改为上下文来绘制新图像。

谢谢!

0 投票
1 回答
402 浏览

objective-c - 使用 Interface Builder 添加的 NSImageView 为 null

我有以下问题:

我在我的 NSWindow 中添加了一个 NSImageView。我将 Window 的控制器设置为文件的所有者。我可以打开我的窗口,点击按钮。它工作得很好。但是当我尝试为 ImageView 设置一个图标时,没有任何反应,因为它是空的。

它为空的原因可能是什么?我检查了一下,它已连接到 IBOutlet。

谢谢

0 投票
4 回答
4494 浏览

cocoa - 在 NSImageView 中获取 NSImage 的边界

我有一个占据整个窗口的 NSImageView。图像视图没有边框,它设置为显示在左下方。所以这意味着无论窗口如何调整大小,视图的原点都与实际图像的原点相匹配。

此外,图像比我可以合理地在屏幕上全尺寸显示的要大得多。所以我也将 imageview 设置为按比例缩小图像的大小。但是,我似乎无法在任何地方找到这个比例因子。

我的最终目标是将鼠标按下事件映射到实际的图像坐标。为此,我想我还需要一条信息……显示的 NSImage 实际上有多大。

如果我查看[imageView bounds],我会得到图像视图的边界矩形,它通常会比图像大。

0 投票
2 回答
182 浏览

objective-c - 使用来自桌面的图像作为 NSImage

如何将 NSImageView 的图像从桌面设置为文件,而不是从我的应用程序内部。这是我尝试过的代码: