图像右侧的 NSStatusItem 按钮标题
NSStatusItem Button Title to the Right of the Image
我希望 NSStatusItem
按钮的标题显示在其图像的右侧。这是一个示例,这是 OS X VPN 菜单栏应用程序:
如果我为 NSStatusItem
的按钮设置标题或图像,它们会正确呈现。但是,如果我设置 both,它们会叠加并水平 center-aligned。
有没有办法在不创建自定义 UIView
的情况下实现 side-by-side 展示位置?
这与 Yosemite 中的一项更改有关,它弃用了 NSStatusItem
上的 setTitle:
和 setImage:
。但是,该文档并未 super-helpful 说明该怎么做。
我发现您必须在 NSStatusItem
的 button
属性 上设置标题和图像。这就是我如何获得上述行为,标题和图像彼此居中。
解决方案很简单,但不是很明显。 NSStatusBarItem 响应NSButton
的setImagePosition:
方法。这是解决我的问题的代码:
self.statusItem.button.image = [NSImage imageNamed:@"StatusBarIcon"];
self.statusItem.button.imagePosition = NSImageLeft;
完成此操作后,设置 self.statusItem.button.title
正确定位项目。
基于 http://tinkker.io/swift/2015/11/10/nsstatusitem.html,在 Swift 中看起来 button.imagePosition = NSCellImagePosition.ImageLeft
做到了
使用
button.imagePosition = NSControl.ImagePosition.imageLeft
我希望 NSStatusItem
按钮的标题显示在其图像的右侧。这是一个示例,这是 OS X VPN 菜单栏应用程序:
如果我为 NSStatusItem
的按钮设置标题或图像,它们会正确呈现。但是,如果我设置 both,它们会叠加并水平 center-aligned。
有没有办法在不创建自定义 UIView
的情况下实现 side-by-side 展示位置?
这与 Yosemite 中的一项更改有关,它弃用了 NSStatusItem
上的 setTitle:
和 setImage:
。但是,该文档并未 super-helpful 说明该怎么做。
我发现您必须在 NSStatusItem
的 button
属性 上设置标题和图像。这就是我如何获得上述行为,标题和图像彼此居中。
解决方案很简单,但不是很明显。 NSStatusBarItem 响应NSButton
的setImagePosition:
方法。这是解决我的问题的代码:
self.statusItem.button.image = [NSImage imageNamed:@"StatusBarIcon"];
self.statusItem.button.imagePosition = NSImageLeft;
完成此操作后,设置 self.statusItem.button.title
正确定位项目。
基于 http://tinkker.io/swift/2015/11/10/nsstatusitem.html,在 Swift 中看起来 button.imagePosition = NSCellImagePosition.ImageLeft
做到了
使用
button.imagePosition = NSControl.ImagePosition.imageLeft