objective-c - 自定义 NSButton 焦点环颜色

标签 objective-c xcode focus subclass nsbutton

我已经将 NSButton 和 NSButtonCell 子类化,我已经更改了绘图。现在聚焦环不再出现在按钮上。我正在寻找一种在我的自定义按钮上绘制具有自定义颜色的对焦环的方法。

问题已更新

最佳答案

我不知道如何自己绘制聚焦环(因此您可以自定义颜色),但要让您的自定义按钮单元绘制聚焦环,您通常只需要覆盖 focusRingMaskBoundsForFrame:inView:像这样:

- (NSRect)focusRingMaskBoundsForFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
    return cellFrame;
}

如果这没有给您想要的结果,您可能需要通过实现 drawFocusRingMaskWithFrame:inView: 额外提供掩码.在这种方法中,您基本上只需绘制应该添加对焦环的内容。 Cocoa 会为您完成剩下的工作。

请注意,这些方法仅适用于 Mac OS X 10.7 Lion 及更高版本,但 Apple 表示现在应该这样做。

关于objective-c - 自定义 NSButton 焦点环颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12659316/

相关文章:

来自 JSON 文件的 iOS 6 NSDictionary

xcode - 本地化无法读取字符串文件 (Xcode 6.3.2)

javascript - jquery input.focus+wrap 无法输入输入

html - 第二次单击时,Bootstrap 折叠菜单切换不会取消焦点

objective-c - Swift 和 ScriptingBridge.framework

objective-c - 在钥匙串(keychain)/用户默认值中保存原子属性有什么好处吗?

objective-c - 使 NSViews 和 NSWindows 具有固定位置

xcode - 无效的 info.plist - 将应用程序发送到应用程序商店时的 UIMainStoryboardFile 或 NSMainNibFile

ios - 无法在 cellForRowAtIndexPath 中获取单元格框架或约束

javascript - 为什么 CurrencyTextField 中的 inputRef 返回错误 inputRef.current is null?