Инициализация окна в какао


Это некоторые код, который я иметь:

[window setLevel:kCGScreenSaverWindowLevel];
[window setOpaque:NO];
[window setStyleMask:0];
[window setBackgroundColor:[NSColor colorWithCalibratedWhite:0.0 alpha:0.3]];
[window setAlphaValue:0];

[window setFrame:[window frameRectForContentRect:[[window screen] frame]] display:YES animate:YES];

[window makeKeyAndOrderFront:self];
[[window animator] setAlphaValue:1.0];

Я был просто интересно, если есть способ сжать его, все эти команды в мое окно. Любые способы ее улучшить?



736
3
задан 27 января 2011 в 04:01 Источник Поделиться
Комментарии
2 ответа

Это легко читаемый стиль, и простой. Вы могли бы сделать петлю и запустить через список в некотором роде, но это вряд ли на самом деле уменьшить сложность, просто переместить его вокруг немного.

4
ответ дан 27 января 2011 в 05:01 Источник Поделиться

В зависимости от того как вы относитесь к использованию объективных-c свойства 2.0 вы можете:

window.level = kCGScreenSaverWindowLevel;
[window setOpaque:NO];
window.styleMask = 0;
window.backgroundColor = [NSColor colorWithCalibratedWhite:0.0 alpha:0.3];
window.alphaValue = 0;

[window setFrame:[window frameRectForContentRect:window.screen.frame] display:YES animate:YES];

[window makeKeyAndOrderFront:self];
[window.animator setAlphaValue:1.0];

Я запрограммирован в C# в течение многих лет, до вступления в Objective-С и я до сих пор найти скобочная нотация трудно читать порой. Для собственного удобства чтения я бы также хотел ввести переменную для нового кадра.

NSRect newFrame = [window frameRectForContentRect:window.screen.frame];
[window setFrame:newFrame display:YES animate:YES];

0
ответ дан 28 января 2011 в 01:01 Источник Поделиться