我注意到沒有委託來觀察UIDatePicker中的更改。有沒有一種方法可以檢測出選取器中發生變化而未確認任何內容,例如旋轉的時刻以及我希望能夠檢測到的新數字。我想到了鍵值觀察,但我不認爲有這麼當場觀察UIDatePicker中的變化
回答
轉到IB並從UIDatePicker
拖到您的.h文件。然後選擇
無論你想在你的.m文件中如何處理, XCode會爲您添加以下方法。
您需要添加到您的UIDatePicker的UIControlEventValueChanged
事件來處理日期的變化而變化的特性:
[myDatePicker addTarget:self action:@selector(dateIsChanged:) forControlEvents:UIControlEventValueChanged];
然後實施:
- (void)dateIsChanged:(id)sender{
NSLog(@"Date changed");
}
很好的回答,我這個綱領性的東西太懶惰。請注意,您需要引用日期選擇器才能執行此操作,如果您在IB中創建它(儘管您可以輕鬆添加它),則不一定具有此功能。 – Dustin 2012-08-08 14:43:20
夫特版本: 'picker.addTarget(個體,動作:#selector(dateChanged),forControlEvents:.ValueChanged) @objc FUNC dateChanged(發件人:的UIDatePicker){ 打印(sender.date.description) }' – 2016-03-29 18:51:58
下面是一個兼容KVO,日期選擇器的建議:
@interface LNKVODatePicker : UIDatePicker
@end
@implementation LNKVODatePicker
- (void)willMoveToWindow:(UIWindow *)newWindow
{
[super willMoveToWindow:newWindow];
[self removeTarget:self action:@selector(_didChangeDate) forControlEvents:UIControlEventValueChanged];
if(newWindow != nil)
{
[self addTarget:self action:@selector(_didChangeDate) forControlEvents:UIControlEventValueChanged];
}
}
- (void)dealloc
{
[self removeTarget:self action:@selector(_didChangeDate) forControlEvents:UIControlEventValueChanged];
}
- (void)_didChangeDate
{
[self willChangeValueForKey:@"date"];
[self didChangeValueForKey:@"date"];
}
@end
- 1. GreenDAO:觀察變化
- 2. 耙 - 觀察變化
- 3. 觀察Angular2中的變量值變化
- 4. 觀察屬性的變化
- 5. 觀察MySQL的變化表?
- 6. $觀察變化的變化angularjs
- 7. 轉化觀察到變量
- 8. 觀察變化成功
- 9. jQuery:觀察nodevalue變化
- 10. FIRStorageReference觀察變化Swift
- 11. 觀察UI中的變化Bootstrap carusel
- 12. 對觀察員的觀察員觀察員是否會發生任何變化?
- 13. 觀察成員變量值的變化
- 14. RxJava combineLatest - 從變化中可觀察到
- 15. 觀察變量變化不起作用
- 16. 如何NSObject的性質觀察變化
- 17. 如何觀察NSScroller的變化?
- 18. 觀察DOM元素的變化
- 19. Aurelia - 觀察變化的相關值
- 20. 觀察對象圖的變化
- 21. 觀察輸入的變化[type =「checkbox」]
- 22. 內容觀察者的變化
- 23. ObservableArray子可觀察變化監測
- 24. 骨幹如何觀察數據變化?
- 25. 淘汰賽JS觀察格值變化
- 26. PHPhotoLibrary變化觀察員不叫
- 27. ViewModel和Model並觀察變化
- 28. 拒絕可觀察值變化
- 29. PrototypeJS觀察窗口尺寸變化?
- 30. 觀察api是否有Node變化?
當然,它是我沒有考慮過的最簡單的解決方案。謝啦 – Chris 2012-08-08 14:42:37