我创建了NSImageView捕获mouseEntered 和mouseExited事件的子类.但只有mouseUp和mouseDown事件获取调用.如何捕获mouseEntered并mouseExited在事件NSImageView子类?
为什么当鼠标通过滚动或动画从NStrackingArea退出时,不会调用mouseExited/mouseEntered?
我创建这样的代码:
鼠标进入和退出:
-(void)mouseEntered:(NSEvent *)theEvent {
NSLog(@"Mouse entered");
}
-(void)mouseExited:(NSEvent *)theEvent
{
NSLog(@"Mouse exited");
}
Run Code Online (Sandbox Code Playgroud)
跟踪区域:
-(void)updateTrackingAreas
{
if(trackingArea != nil) {
[self removeTrackingArea:trackingArea];
[trackingArea release];
}
int opts = (NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways);
trackingArea = [ [NSTrackingArea alloc] initWithRect:[self bounds]
options:opts
owner:self
userInfo:nil];
[self addTrackingArea:trackingArea];
}
Run Code Online (Sandbox Code Playgroud)
更多细节:
我在NSScrollView的视图中添加了NSView作为子视图.每个NSView都有自己的跟踪区域,当我滚动我的scrollView并离开跟踪区域"mouseExited"时没有调用但没有滚动一切正常.问题是,当我滚动"updateTrackingAreas"被调用时,我认为这会产生问题.
*仅使用NSView同样的问题而不将其添加为子视图,因此这不是问题.
我看到有时NSImage大小不是真正的大小(有一些图片)而且CIImage大小总是真实的.我正在测试这个图像.
这是我为测试编写的源代码:
NSImage *_imageNSImage = [[NSImage alloc]initWithContentsOfFile:@"<path to image>"];
NSSize _dimensions = [_imageNSImage size];
[_imageNSImage release];
NSLog(@"Width from CIImage: %f",_dimensions.width);
NSLog(@"Height from CIImage: %f",_dimensions.height);
NSURL *_myURL = [NSURL fileURLWithPath:@"<path to image>"];
CIImage *_imageCIImage = [CIImage imageWithContentsOfURL:_myURL];
NSRect _rectFromCIImage = [_imageCIImage extent];
NSLog(@"Width from CIImage: %f",_rectFromCIImage.size.width);
NSLog(@"Height from CIImage: %f",_rectFromCIImage.size.height);
Run Code Online (Sandbox Code Playgroud)
输出是:

那怎么可能?也许我做错了什么?
我怎么能这样做?

我在Interface Builder库中找不到任何合适的对象.
有什么想法吗?
我有ViewController.xibIB制造,有一个UITableView.我想构建另一个xib文件,例如SearchViewController.xib,thas继承自ViewController.xib.新的SearchViewController.xib应该继承它UITableView,另外它应该有a UISearchBar和a UIButton.
使用Interface Builder可以创建这个场景吗?
如何更改z值,或者只是在Interface Builder中发送回来或前面的对象?
即我想在此视图中移至"标签"的前面:

我有麻烦裁剪图像.对我来说,CICrop过滤器无法正常工作.如果我的CIVector x和y(起点)为0,一切正常(图像从左下角裁剪),图像被我的矩形宽度和高度裁剪,但如果CIVector起点(x和y)在我的裁剪中不是0图像变成空间(因为CICrop过滤器从左下角裁剪,无论起源是什么(x和y)).
我正在用矩形裁剪CIImage,来源:
CIVector *cropRect =[CIVector vectorWithX:150 Y:150 Z: 300 W: 300];
CIFilter *cropFilter = [CIFilter filterWithName:@"CICrop"];
[cropFilter setValue:myCIImage forKey:@"inputImage"];
[cropFilter setValue:cropRect forKey:@"inputRectangle"];
CIImage *croppedImage = [cropFilter valueForKey:@"outputImage"];
Run Code Online (Sandbox Code Playgroud)
使用CIVector X 150和Y 150输出图像:(我为了清晰起见绘制了边框)

使用CIVector X 0和Y 0输出图像:

原始图片:

我做错了什么?或者它应该这样做?
我需要把一个内容拿出来NSView放在NSImage一个实验项目中.这可能吗?我做了一些谷歌搜索,尝试了我找到的两种方法 - 但它们并没有真正起作用.有什么建议?
在iOS中获取委托我使用以下代码:
AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication] delegate];
Run Code Online (Sandbox Code Playgroud)
如何在Cocoa Mac编程中获得委托?
在我的应用程序上,我需要一个按钮,所以当它被点击时,会启动YouTube视频.
那我该怎么做呢?
cocoa ×7
macos ×6
objective-c ×5
iphone ×2
nsimage ×2
crop ×1
delegates ×1
gui-builder ×1
nsimageview ×1
nsview ×1
xcode ×1
xcode4 ×1
youtube ×1