- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在我的应用程序中的自定义 View 中创建了一个 NSPopUpButton
,该 View 具有黑色填充。我现在想让 NSPopUpButton
具有白色文本颜色,但我似乎无法做到这一点。我应该怎么做?
谢谢
最佳答案
这很简单。你只需要重写-[NSPopUpButtonCell drawTitle:withFrame:inView],然后就可以改变关于标题的一切,比如颜色、字体、框架等等。下面是一个例子。希望对您有所帮助。
目标-C:
@interface MyPopUpButtonCell : NSPopUpButtonCell
@property (nonatomic, readwrite, copy) NSColor *textColor;
@end
@implementation MyPopUpButtonCell
- (NSRect)drawTitle:(NSAttributedString*)title withFrame:(NSRect)frame inView:(NSView*)controlView {
NSRect newFrame = NSMakeRect(NSMinX(frame), NSMinY(frame)+2, NSWidth(frame), NSHeight(frame));
if (self.textColor) {
NSMutableAttributedString *newTitle = [[NSMutableAttributedString alloc] initWithAttributedString:title];
NSRange range = NSMakeRange(0, newTitle.length);
[newTitle addAttribute:NSForegroundColorAttributeName value:self.textColor range:range];
return [super drawTitle:newTitle withFrame:newFrame inView:controlView];
}else {
return [super drawTitle:title withFrame:newFrame inView:controlView];
}
}
@end
swift :
class MyPopUpButtonCell: NSPopUpButtonCell {
var textColor: NSColor? = nil
override
func drawTitle(_ title: NSAttributedString, withFrame frame: NSRect, in controlView: NSView) -> NSRect {
if self.textColor != nil {
let attrTitle = NSMutableAttributedString.init(attributedString: title)
let range = NSMakeRange(0, attrTitle.length)
attrTitle.addAttributes([NSAttributedString.Key.foregroundColor : self.textColor!], range: range)
return super.drawTitle(attrTitle, withFrame: frame, in: controlView)
}else {
return super.drawTitle(title, withFrame: frame, in: controlView)
}
}
}
关于macos - NSPopUpButton 白色文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30548730/
我注册通知NSPopUpButtonWillPopUpNotification,以便在显示弹出菜单之前更改它。新的弹出菜单包括正在运行的应用程序列表和受人尊敬的图标。当选择应用程序时,它会调用 @se
我的 View 上有几个 NSPopupButtons,它们在其中一个文本字段之后被定义为 newKeyView。问题是,当按下选项卡按钮时,不知怎的,他们没有得到聚焦环,就像他们被忽略了一样。应该怎
我创建了一个 NSCell 的自定义子类,其中包含一个 NSImageCell、一些 NSTextFieldCell 和一个 NSPopUpButtonCell。 我正在使用以下方法初始化弹出单元格:
我使用此代码向 NSView 添加弹出按钮: if (popupButton) [popupButton release]; popupButton = [[NSPopUpButton alloc]
当用户鼠标(或以其他方式细读)NSPopUpButton 中的项目时,是否可以检测到告诉我的 Controller 的操作?我似乎只收到有关新选择的通知,并且我希望在用户滚动菜单中的任何项目时收到通知
我有一个应用程序列表,我想制作一个 NSPopupButton 来显示应用程序名称的菜单,并在每个项目的左侧显示其图标。 我已经能够将 NSPopupButton 绑定(bind)到我的项目数组,但没
有没有办法自定义 NSPopUpButton 箭头的颜色?我环顾四周,但还没有找到答案 最佳答案 我真的不认为有一种“简单”的方法可以做到这一点。如果您查看 API 说明,它甚至指出它不会响应 set
我想创建一个带有自定义事件图像的 NSPopUpButton。我有两张图像,一张用于非事件图像,另一张用于事件图像。在界面生成器中,我设置了图像和 Alt。 NSPopUpButton 的图像。图像显
我的 Mac OS 应用中有一个清除按钮。 按下按钮时,它会清除表单的所有值并将 NSPopUpButton 重置为第一项。 问题是如何使用代码更改 NSPopUpButton 控件。 谢谢 最佳答案
我正在构建一个 OS X 桌面应用程序,允许用户从下拉列表中选择一个项目。我正在尝试创建一个 NSPopupButton 菜单,例如对 this question 的响应,这也与this tutori
我正在创建一个 NSPopUpButton,它有多个 NSMenuItems,每个 NSMenuItems 都有一个图像和一个标题。我试图创建的功能是这样的:当弹出窗口显示时我希望它正常运行,显示标题
我正在实现一个 NSPopUpButton(用于使用 Swift 的 macOS 应用程序),如图所示: 而且,我有以下代码,它确实有效: enum Importance: Int8 { case E
我在我的应用程序中的自定义 View 中创建了一个 NSPopUpButton,该 View 具有黑色填充。我现在想让 NSPopUpButton 具有白色文本颜色,但我似乎无法做到这一点。我应该怎么
property myPopUp : missing value on startbuttonpressed_(sender) if myPopUp's selectedItem = "Ite
我想复制下面菜单的外观,并在弹出按钮的菜单中命名为“部分”。 我可以看出灰色水平线是 NSMenuItem.separator() 但在这些水平线上设置标题和属性标题不起作用。添加子菜单让我无处可去,
我熟悉如何将数据从一个核心数据实体馈送到 NSPopUpButton 项中,以便可以为另一个项选择该数据。像这样的绑定(bind): 对于值本身: -> ValueSelection.Content
我是 Mac 编程新手,所以如果我的问题太愚蠢,请原谅我。 我正在编写一个小型应用程序,我需要在其中设置目标文件夹。我认为,不只是使用 NSButton “选择文件夹”,而是使用 Firefox 或
我正在构建一个应用程序,它有两个 NSPopUpButtons 作为 View 的一部分。第一个标题为 userChoice1,第二个标题为 userChoice2。我希望禁用 userChoice2
是否可以在 NSPopupButton 上设置默认选择?我有一个允许用户选择他们想要设置的服务器类型,但由于 NSPopupButton 始终显示第一项,如果这是他们想要的类型,他们可能会忽略它。但是
我有一个没有标题的 NSPopUpButton。我为这个弹出按钮设置了一个 NSImage。当我将内容值绑定(bind)到带有字符串的数组(以创建演示)时,弹出按钮的标题将更改为数组的值。 有没有办法
我是一名优秀的程序员,十分优秀!