Альтернатива NSStatusItem.button (NSStatusBarButton) OSX 10.9

Я создаю приложение с кнопкой строки состояния, я использую NSPopover, чтобы отобразить вид поверх него. Код для этого выглядит следующим образом:

popover.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSRectEdge.MinY)

Я хочу сделать эту же функциональность в OSX 10.9. Кнопка недоступна < 10.10. Я посмотрел на источник, и я вижу, что большинство необходимых мне атрибутов есть, мне просто нужен способ эмулировать границы кнопок и просмотр - на этом этапе. Как можно это сделать?

Предложения по полной замене кнопки NSStatusItem. очень полезны.

1 ответ

Решение

В Mavericks использовать устаревшую реализацию NSStatusItem,

Это интерфейс:

@interface NSStatusItem (NSStatusItemDeprecated)

/* 
 These are softly deprecated methods of NSStatusItem.
 Their past and current behavior is to forward their calls onto the button property.
 They will be formally deprecated in a later release. 
 */
@property (nullable) SEL action;
@property (nullable) SEL doubleAction;
@property (nullable, weak) id target;
@property (nullable, copy) NSString *title;
@property (nullable, copy) NSAttributedString *attributedTitle;
@property (nullable, strong) NSImage *image;
@property (nullable, strong) NSImage *alternateImage;
@property (getter=isEnabled) BOOL enabled;
@property BOOL highlightMode;
@property (nullable, copy) NSString *toolTip;
- (NSInteger)sendActionOn:(NSInteger)mask;

/*
 Custom views should not be set on a status item.
 The button property with a template image will allow proper styling of the status item in various states and contexts and should be used instead.
 */
@property (nullable, strong) NSView *view;
- (void)drawStatusBarBackgroundInRect:(NSRect)rect withHighlight:(BOOL)highlight;
- (void)popUpStatusItemMenu:(NSMenu*)menu;

@end
Другие вопросы по тегам