Hi there,
Not sure how much I can help, but I do have some different predicate rows that
seem to work for me:
class StepperRowTemplate : NSPredicateEditorRowTemplate {
override var templateViews: [NSView] {
get {
let XVPredicateRowStepperOffset = CGFloat(8)
var views = super.templateViews
(views.last! as! NSTextField).alignment = .right
var frame = views.last!.frame
frame.origin.x = frame.origin.x + frame.size.width +
XVPredicateRowStepperOffset
let stepper = NSStepper(frame: frame)
stepper.minValue = 0
stepper.valueWraps = false
stepper.bind(.value, to: views.last!, withKeyPath:
#keyPath(NSTextField.doubleValue), options:
[NSBindingOption.continuouslyUpdatesValue:true])
views.append(stepper)
return views
}
}
}
class DatePickerRowTemplate : NSPredicateEditorRowTemplate {
func newDateView() -> NSDatePicker? {
let XVDatePickerWidth = CGFloat(150)
let datePickerCell = NSDatePickerCell()
var frame = super.templateViews.last!.frame
frame.size.width = XVDatePickerWidth
datePickerCell.calendar = Calendar(identifier: .gregorian)
datePickerCell.datePickerMode = .single
datePickerCell.datePickerElements = .yearMonth
datePickerCell.dateValue = Date()
datePickerCell.isEditable = true
let datePicker = NSDatePicker(frame: frame)
datePicker.cell = datePickerCell
return datePicker
}
var dateView: NSDatePicker?
override func copy(with zone: NSZone? = nil) -> Any {
let newRow = super.copy(with: zone) as! DatePickerRowTemplate
newRow.dateView = newDateView()
if let _ = dateView {
newRow.dateView!.dateValue = self.dateView!.dateValue
}
return newRow
}
override var templateViews: [NSView] {
get {
let views = super.templateViews
let datePicker : NSDatePicker
if let _ = dateView {
datePicker = dateView!
}
else {
datePicker = newDateView()!
}
return [views[0], views[1], datePicker]
}
}
}
That sort of thing worked for me.
Regards,
Arved
> On 17 May 2025, at 05:00, [email protected] wrote:
>
> Send Cocoa-dev mailing list submissions to
> [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.apple.com/mailman/listinfo/cocoa-dev
> or, via email, send a message with subject or body 'help' to
> [email protected]
>
> You can reach the person managing the list at
> [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Cocoa-dev digest..."
>
>
> Today's Topics:
>
> 1. NSPredicateEditorRowTemplate subviews layout (Dragan Mili?)
> 2. NSPredicateEditorRowTemplate subviews layout (Dragan Mili?)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri, 16 May 2025 16:35:31 +0200
> From: Dragan Mili? <[email protected]>
> To: Cocoa-dev <[email protected]>
> Subject: NSPredicateEditorRowTemplate subviews layout
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=utf-8
>
> Hello everyone still here,
>
> I?d appreciate if anyone can tell me if there?s a way to actually control
> visual layout of subviews in a predicate editor row template. I have a
> predicate editor with custom row template subclasses, all created in code
> (not in IB) and it all works fine, but the problem are template (sub)views,
> which are not NSPopUpButton(s).
>
> As I select different items of popup buttons, effectively changing editor?s
> predicate property, those buttons seem to get resized according to some
> strange own logic, but the general the problem is that size (width) of
> controls, such are text fields and date pickers, gets unpredictable and they
> usually shrink, even though there is still a plenty of room in the template
> row width.
>
> Trying to resize any control in a row template by force (setFrame: or
> setFrameSize:) has no effect.
>
> I can show some screenshots and videos of the behaviour, as well as code
> samples, if necessary, but I?d like to ask first, maybe someone already knows
> what I?m talking about and provide some insights and solutions.
>
> Thanks in advance,
> -- Dragan
>
> ------------------------------
>
> Message: 2
> Date: Fri, 16 May 2025 16:36:01 +0200
> From: Dragan Mili? <[email protected]>
> To: Cocoa-dev <[email protected]>
> Subject: NSPredicateEditorRowTemplate subviews layout
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=utf-8
>
> Hello everyone still here,
>
> I?d appreciate if anyone can tell me if there?s a way to actually control
> visual layout of subviews in a predicate editor row template. I have a
> predicate editor with custom row template subclasses, all created in code
> (not in IB) and it all works fine, but the problem are template (sub)views,
> which are not NSPopUpButton(s).
>
> As I select different items of popup buttons, effectively changing editor?s
> predicate property, those buttons seem to get resized according to some
> strange own logic, but the general the problem is that size (width) of
> controls, such are text fields and date pickers, gets unpredictable and they
> usually shrink, even though there is still a plenty of room in the template
> row width.
>
> Trying to resize any control in a row template by force (setFrame: or
> setFrameSize:) has no effect.
>
> I can show some screenshots and videos of the behaviour, as well as code
> samples, if necessary, but I?d like to ask first, maybe someone already knows
> what I?m talking about and provide some insights and solutions.
>
> Thanks in advance,
> -- Dragan
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
>
> Cocoa-dev mailing list ([email protected])
>
> Do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins (at) lists.apple.com
>
> https://lists.apple.com/mailman/listinfo/cocoa-dev
>
>
> ------------------------------
>
> End of Cocoa-dev Digest, Vol 22, Issue 12
> *****************************************
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]