Cocoa:[statusItem setView:myView]无论如何都会生成一个白条菜单项

Cocoa:[statusItem setView:myView]无论如何都会生成一个白条菜单项,第1张

概述在我的Mac OS X小应用程序中,我在系统菜单栏中显示一些信息.我用 statusItem = [ [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain]; 它工作得很好,我可以改变文本 [statusItem setTitle:[NSString strin 在我的Mac OS X小应用程序中,我在系统菜单栏中显示一些信息.我用

statusItem = [  [[Nsstatusbar systemStatusbar]   statusItemWithLength:NSVariableStatusItemLength]   retain];

它工作得很好,我可以改变文本

[statusItem setTitle:[Nsstring stringWithString:@"Woo-hoo"]];

但它使用的默认菜单字体对于我相对不重要的信息来说太大了.所以我决定用自定义视图重新实现它.我在Interface Builder中创建了一个视图.

不幸的是,当我将它设置为我的菜单项的视图时

[statusItem setVIEw:myVIEw];

它只是在菜单中显示一个白色条而不是我的东西.我试过了

[statusItem   drawStatusbarBackgroundInRect:[myVIEw frame]  withHighlight:NO];

没有成功.

在试图弄清楚问题是与视图本身有关还是以我将其分配给菜单栏的方式时,我创建了一个窗口并且做了

[myTestwindow setContentVIEw:myVIEw];

这个无缝地工作.这让我觉得我的观点还可以:-)

那么,我还可以尝试使菜单项显示我自己的视图?

谢谢!

解决方法 碰巧是Interface Builder中窗口视图自动调整设置的一些奇怪的副作用(让我们称它们为大小效果).在Inspector中,您可以设置子视图在超级视图大小调整时的大小调整方式.所以它在我的情况下以某种方式被打破,这样当窗口变得足够小(menuitem-high)时,我的元素就被绘制在窗口的框架之外.

我在IB中重新配置了尺寸,消除了我不需要的所有自动装置,现在它完美地工作:来自IB的视图显示在菜单项内.

总结

以上是内存溢出为你收集整理的Cocoa:[statusItem setView:myView]无论如何都会生成一个白条菜单项全部内容,希望文章能够帮你解决Cocoa:[statusItem setView:myView]无论如何都会生成一个白条菜单项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1004227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存