NSStatusItem Button Title to the Right of the Image

前端 未结 3 1947
挽巷
挽巷 2021-01-20 16:01

I want an NSStatusItem’s button’s title to appear to the right of its image. Here’s an example, this is the OS X VPN menubar app:

相关标签:
3条回答
  • 2021-01-20 16:22

    This has to do with a change in Yosemite, which deprecated setTitle: and setImage: on NSStatusItem. The documentation isn't super-helpful for what to do instead, however.

    I’ve found that you have to set the title and the image on the button property of the NSStatusItem. That’s how I was getting the behaviour described above, with the title and the image centred over each other.

    The solution is simple but not immediately apparent. NSStatusBarItem responds to the setImagePosition: method of NSButton. Here’s the code that fixed my issue:

    self.statusItem.button.image = [NSImage imageNamed:@"StatusBarIcon"];
    self.statusItem.button.imagePosition = NSImageLeft;
    

    Having done this, setting self.statusItem.button.title positions the items correctly.

    0 讨论(0)
  • 2021-01-20 16:35

    use

    button.imagePosition = NSControl.ImagePosition.imageLeft
    
    0 讨论(0)
  • 2021-01-20 16:38

    based on http://tinkker.io/swift/2015/11/10/nsstatusitem.html, in Swift it looks like button.imagePosition = NSCellImagePosition.ImageLeft does it

    0 讨论(0)
提交回复
热议问题