0

我的环境是 OS X Yosemite 10.10.2。Xcode 是 6.1.1 和 6.2 beta4。我为 OS X 编写了一个日历应用程序。我使用了我编写的可可绑定框架。我遇到了一个问题。集合视图中应该只有一个焦点日按钮。但是有些不对劲。该应用程序有多个焦点。

我发现一个声明导致了这个问题。[[[self view] window] setStyleMask:([[self view] window].styleMask | NSFullSizeContentViewWindowMask)]; 当app设置NSFullSizeContentViewWindowMask时,由于性能原因,只有collection view的点击按钮才会调用drawRect。这导致了我的问题。- (void)drawRect:(NSRect)dirtyRect

苹果开发者论坛相关帖子:https ://devforums.apple.com/message/1097305#1097305

4

1 回答 1

0

我找到了解决方案。在“- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;”中 按钮添加“[self setNeedsDisplay:YES];”

cocoa绑定的原始教程,observeValueForKeyPath动作有[self setNeedsDisplay :YES]; 但我不记得我为什么评论它了。当未设置 NSFullSizeContentViewWindowMask 时,应用程序仅获得一个焦点。

于 2015-01-30T01:38:28.540 回答