本文的目的是介绍objective-c–NSWindow–右键菜单的详细情况,特别关注右键菜单太多怎么删除的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解object
本文的目的是介绍objective-c – NSWindow – 右键菜单的详细情况,特别关注右键菜单太多怎么删除的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解objective-c – NSWindow – 右键菜单的机会,同时也不会遗漏关于Objective C 学习心得 (一):--Windows下搭建objective C开发环境、objective-c – Cocoa – 显示时的NSWindow动画?、objective-c – Native OSX Lion调整自定义NSWindow或NSView的游标大小、objective-c – NSStatusItem右键菜单的知识。
本文目录一览:- objective-c – NSWindow – 右键菜单(右键菜单太多怎么删除)
- Objective C 学习心得 (一):--Windows下搭建objective C开发环境
- objective-c – Cocoa – 显示时的NSWindow动画?
- objective-c – Native OSX Lion调整自定义NSWindow或NSView的游标大小
- objective-c – NSStatusItem右键菜单
objective-c – NSWindow – 右键菜单(右键菜单太多怎么删除)
解决方法
Objective C 学习心得 (一):--Windows下搭建objective C开发环境
在Windows下搭建Objective C开发环境,需要到GNUstep官方网站上下载,四个软件包:GNUstep MSYS System、GNUstep Core、GNUstep Devel、Cairo Backend。其中,前两个软件包是必须要安装的,第三个软件包是安装一些开发工具,比如:gcc、g++等,所以如果是学习Objective C的话,这个包也是必须要安装,第四个软件包是安装glib等库,这个包安装不安装根据具体情况而定。
至于GNUstep是什么东西,有什么用处,这里做个简单的介绍:GNUstep就是提供类似Cocoa(苹果OS的开发框架)的API和工具,目前支持GNU/Linux and GNU/HURD,Solaris,NetBSD,OpenBSD,FreeBSD,Darwin和Windows,免费使用的。这个项目使Objective C能在多数流行平台上开发和运行。有关详细的介绍开始参考GNUstep的官方网站。
言归正传,下载上述软件包后,点击安装就可以了。然后,需要确认是否安装成功,并且是否能成功编译Objective C代码。
在“开始”菜单中“所有程序”下可以找到“GNUstep”->“shell”,就会出console窗口,可以试试一些Linux命令(ls,cd,mkdir等)。
编写一个Objective C代码进行编译运行测试。在这里就用经典的“hello world”来说明:
在Windows环境下用文本编辑器(Editplus,UE等),编写上述代码,并且保存到GNUstep安装目录下的/home下,取名为helloworld.m。在GNUstep的console窗口命令行下,
1、cd /home
2、gcc -o helloworld helloworld.m -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base
3、运行helloworld.exe
说明:第二步中的一些参数明说,如果熟悉Linux/Unix下C/C++编译的话,上述参数应该很熟悉,-I表示头文件查找的路径,-L表示库文件查找路径,-l表示需要链接的库文件。但是,-fconstant-string-class=NSConstantString 对于这个参数可能比较陌生,这个参数主要是指定常量字符串所使用的class。
helloworld.exe编译并运行成功的话,说明windows下Objective C开发环境就搭建好了,这样就可以开始以廉价方式的学习Objective C。:)
http://blog.csdn.net/waden/article/details/5765294
objective-c – Cocoa – 显示时的NSWindow动画?
谢谢
解决方法
你需要一个窗口的图像作为你的动画的内容,所以我要做的是订购窗口(也可能使它成为关键窗口,使它看起来很集中),但要把它放好在屏幕外,所以用户没有看到它.然后使用CGWindowListCreateImage
抓取窗口的屏幕截图.现在,您将拥有创建动画所需的一切.
动画完成后,只需将实际窗口排在透明窗口的顶部,然后删除透明窗口.使数学正确,以便动画和真实窗口中的窗口图像有点棘手,但它绝对可行.
objective-c – Native OSX Lion调整自定义NSWindow或NSView的游标大小
-(void)cursorUpdate:(NSEvent *)theEvent { [[NSCursor resizeLeftCursor] set]; }
我为NSWindow实现自定义resize,它使用NSBorderlessWindowMask.并希望使用本机Lion的两个箭头游标.但是这种类型的游标在NSCursor API中不存在.
我能从代码中以某种方式获得这样的原生游标吗?
或者也许我必须手工重绘(不是一个好主意)?
解决方法
/System/Library/Frameworks/WebKit.framework/Versions/Current/Frameworks/WebCore.framework/Resources/
…例如,文件“northWestSouthEastResizeCursor.png”.
objective-c – NSStatusItem右键菜单
我使用子类NSView作为我的NsstatusItem的自定义视图,并且右键和左键单击执行不同的函数:
- (void)mouseDown:(NSEvent *)theEvent{ [super mouseDown:theEvent]; if ([theEvent modifierFlags] & NSCommandKeyMask){ [self.target performSelectorOnMainThread:self.rightAction withObject:nil waitUntilDone:NO]; }else{ [self.target performSelectorOnMainThread:self.action withObject:nil waitUntilDone:NO]; } } - (void)rightMouseDown:(NSEvent *)theEvent{ [super rightMouseDown:theEvent]; [self.target performSelectorOnMainThread:self.rightAction withObject:nil waitUntilDone:NO]; }
如何在右键单击时显示菜单,与标准NsstatusItem在左键单击时的操作方式相同?
解决方法
这是我的代码的重要部分:
- (void)showMenu{ // check if we are showing the highlighted state of the custom status item view if(self.statusItemView.clicked){ // show the right click menu [self.statusItem popUpStatusItemmenu:self.rightClickMenu]; } } // menu delegate method to unhighlight the custom status bar item view - (void)menuDidClose:(NSMenu *)menu{ [self.statusItemView setHighlightState:NO]; } - (void)applicationDidFinishLaunching:(NSNotification *)aNotification{ // setup custom view that implements mouseDown: and rightMouseDown: self.statusItemView = [[IsstatusItemView alloc] init]; self.statusItemView.image = [NSImage imageNamed:@"menu.png"]; self.statusItemView.alternateImage = [NSImage imageNamed:@"menu_alt.png"]; self.statusItemView.target = self; self.statusItemView.action = @selector(mainAction); self.statusItemView.rightAction = @selector(showMenu); // set menu delegate [self.rightClickMenu setDelegate:self]; // use the custom view in the status bar item self.statusItem = [[NsstatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength]; [self.statusItem setView:self.statusItemView]; }
以下是自定义视图的实现:
@implementation IsstatusItemView @synthesize image = _image; @synthesize alternateImage = _alternateImage; @synthesize clicked = _clicked; @synthesize action = _action; @synthesize rightAction = _rightAction; @synthesize target = _target; - (void)setHighlightState:(BOOL)state{ if(self.clicked != state){ self.clicked = state; [self setNeedsdisplay:YES]; } } - (void)drawImage:(NSImage *)aimage centeredInRect:(NSRect)aRect{ NSRect imageRect = NSMakeRect((CGFloat)round(aRect.size.width*0.5f-aimage.size.width*0.5f),(CGFloat)round(aRect.size.height*0.5f-aimage.size.height*0.5f),aimage.size.width,aimage.size.height); [aimage drawInRect:imageRect fromrect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f]; } - (void)drawRect:(NSRect)rect{ if(self.clicked){ [[NSColor selectedMenuItemColor] set]; NSRectFill(rect); if(self.alternateImage){ [self drawImage:self.alternateImage centeredInRect:rect]; }else if(self.image){ [self drawImage:self.image centeredInRect:rect]; } }else if(self.image){ [self drawImage:self.image centeredInRect:rect]; } } - (void)mouseDown:(NSEvent *)theEvent{ [super mouseDown:theEvent]; [self setHighlightState:!self.clicked]; if ([theEvent modifierFlags] & NSCommandKeyMask){ [self.target performSelectorOnMainThread:self.rightAction withObject:nil waitUntilDone:NO]; }else{ [self.target performSelectorOnMainThread:self.action withObject:nil waitUntilDone:NO]; } } - (void)rightMouseDown:(NSEvent *)theEvent{ [super rightMouseDown:theEvent]; [self setHighlightState:!self.clicked]; [self.target performSelectorOnMainThread:self.rightAction withObject:nil waitUntilDone:NO]; } - (void)dealloc{ self.target = nil; self.action = nil; self.rightAction = nil; [super dealloc]; } @end
关于objective-c – NSWindow – 右键菜单和右键菜单太多怎么删除的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Objective C 学习心得 (一):--Windows下搭建objective C开发环境、objective-c – Cocoa – 显示时的NSWindow动画?、objective-c – Native OSX Lion调整自定义NSWindow或NSView的游标大小、objective-c – NSStatusItem右键菜单等相关知识的信息别忘了在本站进行查找喔。
本文标签: