gpt4 book ai didi

iphone - 可能是 "reset"UIDatePicker 突出显示的月/日/年吗?

转载 作者:行者123 更新时间:2023-12-03 17:18:20 26 4
gpt4 key购买 nike

我有一个 View Controller ,我正在重用它来编辑先前 View Controller 的 TableView 中的各个对象(NSString、NSNumber、NSDate)。我大致以 Apple 的 SQLiteBooks 示例项目中的 EditingViewController 为基础。 datePicker 在 nib 文件中实例化。

这里的问题是,在我用它设定的第一次约会中,它工作得很好而且很花哨。但是,当在第二个日期再次调用时,它会在加载时正确显示我在其翻转器中编辑的下一个日期(?),但是,突出显示的(蓝色)月、日和年是选择器第一次使用时的日期在第一次编辑之前显示。如何将这些突出显示的值设置为第二个日期对象的初始值或重置整个 UIdatePicker 实例。

第二个相关问题(加分;-)当我努力理解 Cocoa 时:为什么在 SQLiteBooks 示例中,EditingVewController.h 中声明的 datePicker 没有 @property 或 @synthesize 语句?还是我忽略了显而易见的事情?谢谢!

编辑:在使用 UIDatePickers 对其他应用程序进行一些实验后,无论出于何种原因,在日期模式下使用 UIDatePicker 时都会突出显示当前的月、日和年,即使您正在编辑 1776 年以来的日期。我们怎样才能关闭此行为吗?

最佳答案

将第一个选择器的日期存储在,例如存储日期。然后使用 UIDatePicker 的 date 属性设置要在 UIDatePicker 中显示的日期。假设你的UIDatePicker被命名为picker,那么

 picker.date = storedDate; // picker's date is initialised to today's date/time

如果您希望选择器以动画显示您的日期,您也可以使用此方法:

[picker setDate:storedDate animated:YES];

至于属性,它们不应该只用于公共(public)数据。属性是指通过方法访问的数据,而不是通过实例变量直接访问的数据。属性声明(具体来说,@synthesize)告诉编译器使用这些声明来根据需要自动生成访问器方法,以满足类的接口(interface)。

Objective-C 中的点语法由编译器转换为访问器方法的调用。所以...

foo.bar = @"hello";

由编译器翻译为...

[foo setBar:@"hello"];

setBar 也是生成的,将根据其 @property 声明执行其应做的所有操作。因此,如果它被声明为retain,它将被正确地保留在它的setter中,而无需您担心。

因此,总而言之,虽然您提到的 Apple 代码可能可以正常工作(我没有看过),但使用属性会是更好的防御性编码。

关于iphone - 可能是 "reset"UIDatePicker 突出显示的月/日/年吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/568097/

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