青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::
NSWindow的風格一直只有兩種,很難看。Panel倒是有種HUD風格的,但window沒有,畢竟window和panel的titile大小還
是不一樣的,網上有關于HUDWindow的代碼,不過那是把window的titlebar給隱藏掉,自己畫上三個button和右下角可以
resize的東東,如果用這個window來彈出sheet的話會很詭異的出現……    就是sheet從window的最上面彈出來了,底層window看不到titlebar了~
NSWindow在設置成Texture模式之后可以設置背景色,不過這是單色,漸進色設置不了。最簡單的方法就是先給window設置背景色,再覆蓋上一層NSView來填充content的顏色,不過這樣不是渾然一體的,每個window都要這樣搞的話還是很麻煩的。
所以只能從被apple隱藏起來的方法里找辦法了~所以class-dump出來看看~
你會發現在NSWindow.h中繪制界面的函數幾乎沒有,不想那些繼承與NSView的控件一樣,那么多私有的繪制方法。那window是怎樣繪制的呢。

細觀察,你會發現NSWindow有很多擴展類,而且window功能性的東西是非常多的,所以它的重繪肯定是委托給別人來做了(這一點通過獲取
NSWindow的closebutton可以知道,那三個button都不是標準的NSButton,而是
NSThemeButton?記不太清楚了)。經過查找可以發現函數
+(Class)frameViewClassForStyleMask:(unsigned int)styleMask
非常可疑,而且dump出來的類有一個叫做NSThemeFrame的,查看它的類方法,哈哈,發現了吧,全是跟window有關的繪制方法。

所以接下來的事情就很簡單了,寫一個類繼承 NSThemeFrame
#import <Cocoa/Cocoa.h>
#import "NSThemeFrame.h"
@interface KAThemeFrame : NSThemeFrame
{
}
@end


那么需要重寫哪些函數呢~我們的目標是重畫TitleBar,具體窗體的內容不需要重畫,因為反正有一個NSView要覆蓋在上面的,所以一個方法就足夠了,廢話少說,上代碼
#import "KAThemeFrame.h"
 
@implementation KAThemeFrame
 
- (id)contentFill
{
// This color is used only when dragging.
// Please don't try to modify the value.
return [NSColor colorWithCalibratedWhite:.13 alpha:1];
}
 
- (id)frameColor
{
return [NSColor redColor];
}
 
- (void)_drawTitleBar:(NSRect)rect
{
NSRect titleRect = [self titlebarRect];
 
// Panel style
if([self _isUtility])
{
KAGradient *titleGradient = [KAGradient gradientWithStartingColor: [NSColor colorWithCalibratedRed:0.423f green:0.423f blue:0.423f alpha:1.0]
endingColor: [NSColor colorWithCalibratedRed:0.365f green:0.365f blue:0.365f alpha:1.0]];
[titleGradient drawInRect:titleRect angle:-90];
}
// Window style
else
{
float radius = 4;
NSBezierPath *borderPath = [NSBezierPath bezierPathWithRoundedRect:titleRect cornerRadius:radius inCorners:(OSTopLeftCorner | OSTopRightCorner)];
NSBezierPath *titlebarPath = [NSBezierPath bezierPathWithRoundedRect:NSInsetRect(titleRect, 1, 1) cornerRadius:radius-1 inCorners:(OSTopLeftCorner | OSTopRightCorner)];
 
KAGradient *titleGradient = [KAGradient gradientWithStartingColor: [NSColor colorWithCalibratedRed:0.423f green:0.423f blue:0.423f alpha:1.0]
endingColor: [NSColor colorWithCalibratedRed:0.365f green:0.365f blue:0.365f alpha:1.0]];
KAGradient *borderGradient = [KAGradient gradientWithStartingColor: [NSColor colorWithCalibratedRed:0.423f green:0.423f blue:0.423f alpha:1.0]
endingColor: [NSColor colorWithCalibratedRed:0.365f green:0.365f blue:0.365f alpha:1.0]];
 
 
[[NSColor clearColor] set];
NSRectFill(titleRect);
 
[borderGradient drawInBezierPath:borderPath angle:-90];
[titleGradient drawInBezierPath:titlebarPath angle:-90];
 
}
[self _drawTitleStringIn:[self _titlebarTitleRect] withColor:[NSColor colorWithDeviceWhite:.75 alpha:1]];

具體請看:http://www.cocoachina.com/macdev/cocoa/2010/0122/352.html

@import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
posted on 2011-12-09 04:17 逛奔的蝸牛 閱讀(2989) 評論(0)  編輯 收藏 引用 所屬分類: Cocoa
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品日韩一区二区三区| 欧美国产日韩亚洲一区| 国产精品揄拍一区二区| 午夜视频在线观看一区二区三区| 亚洲手机成人高清视频| 国产午夜精品在线观看| 久久亚洲色图| 欧美二区在线| 午夜精品久久久久久久蜜桃app| 亚洲欧美日韩精品久久| 亚洲国产成人在线| 一区二区黄色| 黑人操亚洲美女惩罚| 亚洲国产专区校园欧美| 国产精品乱码久久久久久| 久久精品一区蜜桃臀影院 | 亚洲高清在线观看一区| 欧美日韩免费一区二区三区视频 | 亚洲欧美在线播放| 久久久精品日韩欧美| 日韩视频免费大全中文字幕| 亚洲一区二区三区免费在线观看| 一区在线免费| 亚洲视频在线观看视频| 亚洲国产精品福利| 亚洲影音一区| 一本综合精品| 久久艳片www.17c.com| 午夜精品一区二区三区在线| 嫩草国产精品入口| 久久精品毛片| 欧美色欧美亚洲另类二区| 久久综合久色欧美综合狠狠| 欧美日韩在线精品一区二区三区| 另类天堂av| 国产欧美日韩综合一区在线观看| 亚洲国产精品精华液2区45| 国产美女高潮久久白浆| 亚洲精品一区在线| 最新日韩精品| 久久久久久穴| 欧美在线视频全部完| 欧美日韩国产电影| 欧美激情影音先锋| 精品999网站| 欧美一区成人| 久久国产精品亚洲77777| 国产精品vip| 日韩天堂在线观看| a4yy欧美一区二区三区| 久久综合久久久| 久久综合久久久久88| 国产在线拍偷自揄拍精品| 亚洲免费影院| 欧美一区二区三区播放老司机 | 欧美日韩国产专区| 亚洲欧洲一区二区在线播放| 亚洲黄色有码视频| 欧美大色视频| 亚洲黄色影院| 亚洲网站视频| 国产精品国产亚洲精品看不卡15| 99re8这里有精品热视频免费| 99xxxx成人网| 国产精品成人一区二区艾草| 这里只有精品视频| 香蕉久久a毛片| 国产一区日韩一区| 久久久久久久精| 欧美成人一区二区三区片免费| 亚洲第一搞黄网站| 欧美大片在线观看| 一本在线高清不卡dvd| 午夜国产精品影院在线观看| 国产精品三级视频| 久久国产加勒比精品无码| 麻豆成人综合网| 亚洲精品视频在线| 欧美午夜视频一区二区| 午夜日韩激情| 欧美成人午夜剧场免费观看| 日韩亚洲欧美精品| 国产精品区一区二区三| 久久激情婷婷| 亚洲毛片一区| 欧美制服丝袜| 亚洲区国产区| 国产精品另类一区| 麻豆精品国产91久久久久久| 亚洲乱码国产乱码精品精98午夜| 午夜视频一区在线观看| 亚洲第一精品夜夜躁人人躁| 欧美日韩成人精品| 久久成人精品电影| 亚洲精品人人| 久久午夜精品| 亚洲一区免费看| 亚洲国产精品t66y| 国产精品麻豆成人av电影艾秋| 久久久美女艺术照精彩视频福利播放| 亚洲国产精品成人综合| 亚欧美中日韩视频| 亚洲人成免费| 韩国精品久久久999| 欧美日韩性视频在线| 久久久久综合| 亚洲欧美日韩系列| 亚洲美女啪啪| 欧美成人免费播放| 欧美中文字幕在线视频| 亚洲每日更新| 亚洲福利在线看| 国产伦精品一区二区三区在线观看| 欧美a级大片| 久久精品一区四区| 亚洲欧美日韩中文播放| 亚洲毛片在线| 亚洲国产成人久久综合| 久久综合色一综合色88| 欧美中文字幕在线观看| 亚洲在线一区二区| 一区二区三区四区五区精品视频| 激情成人亚洲| 狠狠做深爱婷婷久久综合一区| 国产精品亚洲综合一区在线观看| 欧美激情视频免费观看| 噜噜噜在线观看免费视频日韩| 性一交一乱一区二区洋洋av| 一区二区欧美视频| 亚洲免费电影在线观看| 亚洲高清不卡在线观看| 欧美v亚洲v综合ⅴ国产v| 久久久久久久波多野高潮日日| 欧美一进一出视频| 午夜精品久久久久久久99水蜜桃| 在线视频中文亚洲| 一区二区高清视频| 亚洲小说欧美另类婷婷| 亚洲视频一起| 先锋影音国产精品| 欧美一区二区免费| 久久久蜜桃精品| 久热精品在线视频| 欧美国产日韩一区二区在线观看| 欧美成人网在线| 亚洲第一福利在线观看| 亚洲国产日韩一区二区| 亚洲精品视频在线| 一卡二卡3卡四卡高清精品视频| 正在播放欧美视频| 亚洲欧美国内爽妇网| 欧美一区二区在线看| 久久精品日韩一区二区三区| 久久中文字幕导航| 欧美国产日韩精品| 国产精品高潮呻吟视频| 国产美女搞久久| 亚洲第一在线| 夜夜躁日日躁狠狠久久88av| 亚洲综合色视频| 久久久综合网| 亚洲国产三级网| 亚洲午夜av在线| 久久频这里精品99香蕉| 欧美日韩国产色综合一二三四| 国产精品国产自产拍高清av王其| 国产婷婷97碰碰久久人人蜜臀| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲国内精品在线| 亚洲女与黑人做爰| 美女91精品| 在线中文字幕不卡| 久久久亚洲国产美女国产盗摄| 欧美精品在线免费| 国内精品国产成人| 一区二区三区不卡视频在线观看 | 久久免费视频网站| 亚洲三级电影全部在线观看高清 | 91久久精品国产| 午夜欧美不卡精品aaaaa| 欧美成人中文| 国产日韩一区在线| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲韩日在线| 久久av一区二区三区漫画| 亚洲第一级黄色片| 欧美在线亚洲| 欧美无乱码久久久免费午夜一区| 黄色一区二区三区| 亚洲欧美日韩精品一区二区| 欧美风情在线| 欧美一区激情| 国产精品大片wwwwww| 亚洲伦理在线| 欧美成人午夜免费视在线看片| 亚洲永久精品大片| 欧美日韩在线精品| 99视频超级精品| 欧美福利视频在线| 久久久精品999|