I am subclassing NSDatePicker to implement calendar widget. I am able to change text color by setting textColor property of NSDatePicker but when I click on any field of NSDatePicker like Month/Year/Day the default color is somewhat blue.
I want to change highlight color to some custom color but I am not able to do that. I tried overriding highlightColorWithFrame:inView: and highlight:withFrame:inView: but no effect.
This is how it looks at present
I would not recommend to change the selection color of a control since maxOS Mojave will allow the user to customise the Accent color in system preferences.
If ever you are still looking for customisation you must customise the drawing of the NSDatePickerCell and not of the control itself. I would try to overwrite
draw(withFrame cellFrame: NSRect, in controlView: NSView)
but for NSDatePickerCell it may be some more difficult since there are multiple datePicker elements.
Related
I'm using NSPopover, and when I change the system dock color to dark (Yosemite new feature) some elements in my view invert their color.
For example some labels changes from black to grey, or text fields background changes from white to black. And if I have a view with white background it is now changes to the blurred dark effect.
So two questions:
Can I cancel this behaviour and force the UI to act like in regular mode?
Is there any rules here which element invert their color?
Because it seems that some element changes and some not.
This is my app in Yosemite regular mode:
And this is in Yosemite dark mode:
It might be a library you're using that's causing this behavior. I just tested on a new project and I couldn't make the NSPopover black no matter how hard I tried.
What libraries are you using ? How did you set up your NSPopover ?
Maybe you could try changing the appearance property of the view ?
view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
NSView has the property appearance because it conforms to NSAppearanceCustomization.
Also see NSAppearance.
————————————————————————
Found the solution:
self.popover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
the result:
There are ways to do this, though I would recommend embracing it.
It's not concretely documented what will change and how.
But observation will show you what to do.
Primarily it requires you do the opposite of opting in.
Opting in is using Appkit interface elements as is as well as using the NSColor names provided as system colors and using the NSVisualEffectView.
That means to explicitly opt out you need to go around and basically customize views and that mostly means setting explicit colors and occasionally subclassing.
Out of the box HUD style popovers and panels would be opting in.
I have a NSSearchField and I want to change its background color but i am not able to do it i tried out few things:
1) I tried to set DrawBackground TRUE and then setBackgroundColor but the value of DrawBackGround is always False either I try to set it trough code or Nib.(i don't know why?)
2)I tried out setting NSText's BackgroundColor but it is not looking good because it is not covering whole NSSearchField the extreme corners where the small search icon and cancel icon is present are left uncolored.
3)I want the searchField to have the color of the view it is lying so i decreased the alpha value of the searchField which looks good but the alpha value of text is also decreased so is there any way to make text's alpha value to remain always 1.
Thanks :)
If you look at the documentation, Apple prevents background color rendering for rounded-rectangle fields:
"In order to prevent inconsistent rendering, background color rendering is disabled for rounded-bezel text fields."
https://developer.apple.com/library/prerelease/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTextField_Class/#//apple_ref/occ/instm/NSTextField/setDrawsBackground:
NSSearchField is extension of NSTextField, NSTextField again extension of NSView,
Not sure, but its possible to make a custom clas and overwrite drawRect function and paint with the background color.
I successfully changed the background color of a Gtk.TextView (GTK3) with method override_background_color:
color.parse(self.settings.get_string("bgcolor"))
self.ui.NoteView.override_background_color(Gtk.StateType.NORMAL,color)
I also override the foreground color.
Unfortunatelly in that case making a selection in the text is invisible.
How can I modify the background and foreground color of a TextView without loosing the visible text selecting?
It's best to format the text in a GtkTextView by using GtkTextTags. You can apply any sort of text formatting(background & foreground colors, font, size, weight, etc..) to any portion of the text.
Click here for an example.
Hope that helps!
By the way, what you're doing is changing the style of your TextView. In Gtk it's best to stay away from doing this, especially if you aren't in a controlled environment or plan on releasing your software for others to use, because gtk's philosophy is to leave the styling and theming up to the end user for their own personal touches/needs.
This is why you are getting some unwanted results by overriding style colors.
In terms of a GtkTextView it does however offer simple formatting of the text(even support for adding images/widgets) via use of GtkTextTags as the link shows above.
Is it possible to programatically set Petrel's Window3D's background color?
I saw that you can use the ISettingsInfo to get/set the color, but I am wanting to know how to make the window's background update.
Beginning in 2012.1 you can get (or set) the background color for a Window3D by querying for the appropriate IColorInfoFactory and getting the ColorInfo instance for the window in question. However, this only applies when the window is toggled to its non-black state.
The Petrel 3D Window's "Change background color" function toggles between black and the color specified in the window's Settings tab. Unfortunately, the ColorInfo API only exposes that color from the Settings tab, so as of 2012, there is no way to know whether the window is currently toggled to a black background or to the specified color.
I would like to set a custom color for the keyboard that is associated with a UITextField. I see that I can set the UIKeyboardAppearanceType, but I would like to be able to set the color to arbitrary color, rather than just change to a different default setting. I was hoping it would be as simple as something like this:
keyboard.tintColor = [UIColor colorWithRed:...]
Any suggestions?
There's no public API to access the system keyboard, so you're out of luck without re-writing UIKeyboard from scratch (which is a bad idea), or finding some private API to do the job (which is a bad idea if you want to submit to the App Store).
You could use Alert style keyboard and place a view in the background with a background color of your choice. This will make the keyboard a different color.
In Xcode look for the 'Keyboard Look' attribute in the Text Input Traits section of the Attributes Inspector. Can toggle between Light/Dark.