标签: nsimageview

在NSImageView SubClass中未调用mouseEntered和mouseExited

我创建了NSImageView捕获mouseEnteredmouseExited事件的子类.但只有mouseUpmouseDown事件获取调用.如何捕获mouseEnteredmouseExited在事件NSImageView子类?

macos cocoa objective-c nsimageview

30
推荐指数
3
解决办法
1万
查看次数

NSImageView图像方面填充?

所以我习惯了UIImageView,并能够设置不同的方式来显示图像.比如AspectFill模式等......

我想在Mac应用程序上使用NSImageView完成同样的事情.在这方面,NSImageView的工作方式与UIImageView类似吗?或者我将如何在NSImageView中显示图像并选择不同的方式来显示该图像?

macos nsimageview

16
推荐指数
5
解决办法
1万
查看次数

Mac OS Cocoa:在画布上绘制一个简单的像素

我希望我能找到答案.我搜索并搜索过,但答案不对.这是我的情况:

在Mac OS Cocoa应用程序中,我想在我的应用程序窗口的专用区域上绘制一个像素(实际上是几个像素).我想,NSImageView放在那里会更好(我用IB做了这个并将插座连接到我的应用代表)然后用它代替我的NSWindow.

我怎么能这样做呢?Mac OS似乎提供NSBezierPath了最基本的绘图工具 - 这是真的吗?这对我来说是完全令人震惊的.我来自Windows编程的悠久历史,并且通常在画布上绘制像素是最简单的事情.

我不想使用OpenGL,我不确定Quartz参与的程度如何.

我想要的只是帮助我如何在真正的Objective-C/Cocoa中实现这个伪代码:

imageObj.drawPixel(10,10,blackColor);
Run Code Online (Sandbox Code Playgroud)

我很想听听你的回答,我相信这会帮助很多人从Cocoa开始.

谢谢!

macos cocoa pixel objective-c nsimageview

11
推荐指数
3
解决办法
1万
查看次数

NSImageView中的动画GIF

我正在使用NSImageView来显示大约80帧的动画GIF,每帧长20ms.NSImageView可以"开箱即用"显示GIF动画,但问题是它需要太多的CPU,大约连续10%(在我的核心i5 proc上).仪器显示它花费了大量的CPU时间来解码GIF.

为了提高效率,我尝试了以下方面但没有取得多大成功:

  • 将帧放入QTMovie并播放(我的进程使用4%,播放电影的QTKitServer进程使用另外15%)

  • 绘图直接与视图CGContextDrawImage(〜5%的CPU使用率) -我没有出口的GIF的框架,我就创建了一个CGImageRef从30x30px巴纽我已经躺在附近.

我不知道还有什么可以尝试的.对NSImageView进行子类并以某种方式缓存图像听起来是个好主意,但是,唉,我是Cocoa的初学者......任何想法都会受到高度赞赏.谢谢!

cocoa gif animated-gif nsimageview

10
推荐指数
0
解决办法
4042
查看次数

NSImageView双击动作

我的Mac App中有一些NSImageView,用户可以拖放像.png或.pdf这样的对象,将它们存储到用户共享默认值中,工作正常.

我现在想设置一个动作,当用户双击这些NSImageView时,但它似乎有点困难(我没有NSTableView的麻烦,但'setDoubleAction'不适用于NSImage,并且答案很多(这里)或者谷歌)关于NSImageView的动作指向制作NSButton而不是NSImageView,所以这没有帮助)

这是我的AppDelegate.h的一部分:

@interface AppDelegate : NSObject <NSApplicationDelegate>{

    (...)

    @property (assign) IBOutlet NSImageView *iconeStatus;

    (...)

@end
Run Code Online (Sandbox Code Playgroud)

这是我的AppDelegate.m的一部分:

#import "AppDelegate.h"

@implementation AppDelegate

(...)

@synthesize iconeStatus = _iconeStatus;

(...)

- (void)awakeFromNib {

    (...)

[_iconeStatus setTarget:self];
[_iconeStatus setAction:@selector(doubleClick:)];

    (...)

}

(...)

- (void)doubleClick:(id)object {
        //make sound if that works ...
        [[NSSound soundNamed:@"Basso"] play];

}
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

谁能告诉我最简单的方法是什么?

xcode nsimageview

10
推荐指数
2
解决办法
3057
查看次数

如果帧样式为NSImageFrameNone,则NSImageView不会缩小图像

我需要NSImageView在resizable 上显示NSWindow.如果视图中显示的图像太大而无法适应widnow中的图像视图,则视图中应显示的图像应缩小,并且在调整窗口大小时也应更改其大小.我能够使用自动布局实现正确的行为,并将imageScaling属性设置NSImageViewNSImageScaleProportionallyDown.不幸的是,当我的图像视图的imageFrameStyle属性被设置为时,它不起作用NSImageFrameNone(它适用于任何其他选项,如NSImageFramePhotoNSImageFrameGrayBezel).我不希望显示任何帧,例如NSImageFrameNone,但禁用帧中断自动调整 - 看起来像帧设置为NSImageFrameNone图像不缩小并按NSImageView比例放大以匹配显示的图像大小.有人解决这个问题吗?

cocoa objective-c nsimageview

10
推荐指数
1
解决办法
2419
查看次数

在NSImageView中获取NSImage的界限

我有一个占用窗口全部范围的NSImageView.图像视图没有边框,其设置显示在左下角.因此,这意味着视图的原点与实际图像的原点匹配,无论窗口的大小如何调整.

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

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

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

cocoa nsimage nsimageview

8
推荐指数
1
解决办法
3949
查看次数

如何创建带圆角的NSImageView?

目前我想创建一个圆角NSImageView,我是一个新手,怎么样?

cocoa nsimageview

7
推荐指数
1
解决办法
5782
查看次数

对NSImageView缩放感到困惑

我正在尝试显示一个简单的NSImageView,它的图像居中而不像这样缩放它:

就像iOS设置UIView的contentMode =**UIViewContentModeCenter**一样

就像iOS设置UIView的contentMode = UIViewContentModeCenter一样

所以我尝试了所有NSImageScaling值,这是我选择NSScaleNone时得到的

我真的不明白发生了什么: -  /

我真的不明白发生了什么: - /

cocoa nsimageview

7
推荐指数
1
解决办法
7434
查看次数

设置模板图像的图像颜色

我有这样的图像: 在此输入图像描述

(渲染为模板图像)

我试过这段代码:

@IBOutlet weak var imgAdd: NSImageView!
imgAdd.layer?.backgroundColor = CGColor.white
Run Code Online (Sandbox Code Playgroud)

这只会改变背景颜色.

有没有办法以编程方式更改此图像的颜色?


到目前为止,我已经尝试了下面的代码不起作用.(图像颜色不会改变.)

func tintedImage(_ image: NSImage, tint: NSColor) -> NSImage {
    guard let tinted = image.copy() as? NSImage else { return image }
    tinted.lockFocus()
    tint.set()

    let imageRect = NSRect(origin: NSZeroPoint, size: image.size)
    NSRectFillUsingOperation(imageRect, .sourceAtop)

    tinted.unlockFocus()
    return tinted
}

imgDok.image = tintedImage(NSImage(named: "myImage")!, tint: NSColor.red)
Run Code Online (Sandbox Code Playgroud)

macos cocoa nsimageview swift3

7
推荐指数
6
解决办法
3366
查看次数

标签 统计

nsimageview ×10

cocoa ×8

macos ×4

objective-c ×3

animated-gif ×1

gif ×1

nsimage ×1

pixel ×1

swift3 ×1

xcode ×1