adi*_*dib 5 macos user-interface cocoa itunes nswindow
是否有一个开源库供Cocoa创建一个跟随iTunes风格的窗口?这是窗口控件垂直布局而不是水平布局:

我发现它节省空间,适用于不需要窗口标题的实用程序类型的应用程序.
这快速砍掉了NSWindow代表应该让你开始:
//VerticalTrafficLightsWindowDelegate.h
#import <Cocoa/Cocoa.h>
@interface VerticalTrafficLightsWindowDelegate : NSObject <NSWindowDelegate> {
NSWindow *window;
}
@property (assign) IBOutlet NSWindow *window;
- (void)verticalizeButtonsForWindow:(NSWindow *)aWindow;
@end
//VerticalTrafficLightsWindowDelegate.m
#import "VerticalTrafficLightsWindowDelegate.h"
@implementation VerticalTrafficLightsWindowDelegate
@synthesize window;
- (void)awakeFromNib {
[self verticalizeButtonsForWindow:window];
}
- (void)windowDidResize:(NSNotification *)notification {
[self verticalizeButtonsForWindow:window];
}
- (void)verticalizeButtonsForWindow:(NSWindow *)aWindow {
NSArray *contentSuperViews = [[[aWindow contentView] superview] subviews];
NSView *closeButton = [contentSuperViews objectAtIndex:0];
NSRect closeButtonFrame = [closeButton frame];
NSView *minimizeButton = [contentSuperViews objectAtIndex:2];
NSRect minimizeButtonFrame = [minimizeButton frame];
NSView *zoomButton = [contentSuperViews objectAtIndex:1];
NSRect zoomButtonFrame = [zoomButton frame];
[minimizeButton setFrame:NSMakeRect(closeButtonFrame.origin.x, closeButtonFrame.origin.y - 20.0, minimizeButtonFrame.size.width, minimizeButtonFrame.size.height)];
[zoomButton setFrame:NSMakeRect(closeButtonFrame.origin.x, closeButtonFrame.origin.y - 40.0, zoomButtonFrame.size.width, zoomButtonFrame.size.height)];
}
@end
Run Code Online (Sandbox Code Playgroud)
但是我得说,就像JeremyP一样,我只能希望Apple不会在OS X中更广泛地传播它.
| 归档时间: |
|
| 查看次数: |
4696 次 |
| 最近记录: |