NSStatusItem
‘s -setView:
method以在我执行 *** 作时在菜单栏区域中显示它时发生的情况: Example of messed up NSProgressIndicator http://cl.ly/l9R/content
是什么原因导致显示此边框,如何删除它?预期的结果是控件是透明的.
这是我正在使用的代码:
nsprogressIndicator *progressIndicator = [[nsprogressIndicator alloc] init];[progressIndicator setBezeled: NO];[progressIndicator setStyle: nsprogressIndicatorSpinningStyle];[progressIndicator setControlSize: NSSmallControlSize];[progressIndicator sizetoFit];[progressIndicator startAnimation: self];[statusItem setVIEw: progressIndicator]; // statusItem is an NsstatusItem instance...[statusItem setVIEw: nil];[progressIndicator stopAnimation: self];[progressIndicator release];解决方法 不要缩放nsprogressIndicator,尽管它也是NSVIEw.创建一个精确调整大小的新视图,将状态指示器放在该视图中,并将封闭视图传递给 – [NsstatusItem setVIEw:].这是我的实施.
在NsstatusItem AnimatedProgressIndicator.m中,
- (voID) startAnimation { NSVIEw *progressIndicatorHolder = [[NSVIEw alloc] init]; nsprogressIndicator *progressIndicator = [[nsprogressIndicator alloc] init]; [progressIndicator setBezeled: NO]; [progressIndicator setStyle: nsprogressIndicatorSpinningStyle]; [progressIndicator setControlSize: NSSmallControlSize]; [progressIndicator sizetoFit]; [progressIndicator setUsesThreadedAnimation:YES]; [progressIndicatorHolder addSubvIEw:progressIndicator]; [progressIndicator startAnimation:self]; [self setVIEw:progressIndicatorHolder]; [progressIndicator center]; [progressIndicator setNextResponder:progressIndicatorHolder]; [progressIndicatorHolder setNextResponder:self];}- (voID) stopAnimation { [self setVIEw:nil];}- (voID) mouseDown:(NSEvent *) theEvent { [self popUpStatusItemmenu:[self menu]];}- (voID) rightmouseUp:(NSEvent *) theEvent {}- (voID) mouseUp:(NSEvent *) theEvent {}…
我添加了一个自定义方法 – [NSVIEw center],它执行以下 *** 作:
@implementation NSVIEw (Centering)- (voID) center { if (![self supervIEw]) return; [self setFrame:NSMakeRect( 0.5 * ([self supervIEw].frame.size.wIDth - self.frame.size.wIDth),0.5 * ([self supervIEw].frame.size.height - self.frame.size.height),self.frame.size.wIDth,self.frame.size.height )];}@end总结
以上是内存溢出为你收集整理的objective-c – 是什么原因导致白色边框应用于系统菜单中显示的NSProgressIndicator?全部内容,希望文章能够帮你解决objective-c – 是什么原因导致白色边框应用于系统菜单中显示的NSProgressIndicator?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)