gpt4 book ai didi

ios - 如何设置 RadDataForm ListPicker 的选择器的样式

转载 作者:行者123 更新时间:2023-11-29 05:42:00 26 4
gpt4 key购买 nike

我在 Nativescript-Angular 应用程序中有一个 RadDataForm。

此 RadDataForm 显示了我的一个属性的列表选择器。

我已经阅读了有关 RadDataForm 组件样式的内容,但缺少有关如何设置更改日期时显示的“轮文本”样式的部分。 (或者我错过了什么?)

它们保持黑色,但我需要另一种颜色(即白色)

我已经为 DatePicker 解决了这个问题,但这对 Listpicker 来说“正确”不起作用 --> 在我更改选择后它正在改变颜色。

我有一个playground使用 iOS 设备进行设置和测试。

最佳答案

经过大量搜索后,我发现了 Nativescript-Example App .

在这个应用程序中,还有一个 RadDataForm 和一个已设计样式的列表选择器。该应用程序还显示了示例所使用的代码。

在我的组件中我有:

onEditorSetup(event: DataFormEventData) {

const property = this.myDataForm.dataForm.getPropertyByName(event.propertyName);
const t = property.editor.type;
if (t === DataFormEditorType.Picker) {
console.log("found picker editor for " + property.displayName);
if (app.ios) {
this.setupPickerViewEditor(event);
}
}
}

setupPickerViewEditor(event: DataFormEventData) {
console.log("setting up editor: " + event.editor);
const delegate = UIPickerViewDelegateImplementation.new().initWithOwner(event.editor);
this.delegates.set(event.propertyName, delegate); // storing the delegate cause they are weak references.
event.editor.pickerView.delegate = delegate;
}

我对具有白色文本的选择器委托(delegate)的实现是:

export class UIPickerViewDelegateImplementation extends NSObject implements UIPickerViewDelegate {

static ObjCProtocols = [UIPickerViewDelegate];
static new(): UIPickerViewDelegateImplementation {
return <UIPickerViewDelegateImplementation> super.new();
}

private _owner: any; // TKDataFormPickerViewEditor

initWithOwner(owner: any /* TKDataFormPickerViewEditor */): UIPickerViewDelegateImplementation {
this._owner = owner;

return this;
}

pickerViewTitleForRowForComponent(pickerView: UIPickerView, row: number, component: number): string {
return this._owner.options[row];
}

pickerViewDidSelectRowInComponent(pickerView: UIPickerView, row: number, component: number): void {
this._owner.selectedIndex = row;
this._owner.owner.editorValueChanged(this._owner);
}

pickerViewAttributedTitleForRowForComponent(pickerView: UIPickerView, row: number, component: number): NSAttributedString {
const title = this.pickerViewTitleForRowForComponent(pickerView, row, component);
const attr = NSDictionary.dictionaryWithObjectForKey(UIColor.whiteColor, NSForegroundColorAttributeName);
const res = NSAttributedString.alloc().initWithStringAttributes(title, attr);

return res;
}
}

关于ios - 如何设置 RadDataForm ListPicker 的选择器的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56472009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com