我已經創建了一個自定義窗口來覆蓋NSWindow。除了它有一個影子的事實之外,它完美地工作。我使用[self setHasShadow:NO]以編程方式設置陰影,但它仍然存在。但是,如果我使用[self hasShadow]進行檢查,它將返回false。在可可中設置窗口的陰影?
我似乎讓陰影消失的唯一方法是如果在Interface Builder中關閉陰影。是的,我意識到這是好的,但我很好奇爲什麼編程設置不會覆蓋Interface Builder設置,即使其他編程設置也可以。
我不允許發佈任何代碼,因此請不要要求我這樣做。
除了[self setHasShadow:NO]之外,我還需要做些什麼來以編程方式設置窗口的陰影嗎?
編輯:調用從awakeFromNib
[self setHasShadow:NO]
使陰影消失。不過,我想直接從構造不awakeFromNib
的Mac OSX雪豹時,Xcode 3.2.6
如果你把'[自setHasShadow:NO]會發生什麼:'在'
此外,如果你使用無邊框窗口你應該寫這個禁用陰影awakeFromNib',而不是在你的初始化? – 2012-02-03 06:10:07
@ sudorm-rf我試圖在awakeFromNib中放置[self setHasShadow:NO],這會讓陰影消失。但我寧願如果我可以直接在構造函數中做到這一點。在調用構造函數和awakeFromNib被調用之間可能會改變設置? – fdh 2012-02-03 20:27:00
嗯,問題是IB在你調用初始化後配置你的窗口*。在IB初始化您的視圖後調用awakeFromNib。因此,IB中的(大多數)設置將優先於初始化程序中的設置。 – 2012-02-03 20:28:34