我需要指导,因为我似乎误解了一些概念。
我想要实现的是将UIPickerView作为UITextField的inputView。这可以通过self.textField.inputView = self.pickerView
轻松完成。这样做的问题是你仍然有一个闪烁的光标,并且具有BT键盘的设备仍然可以在文本字段中键入文本。
所以我读到了可以作为第一响应者的自定义UIViews。我已经将UIView子类化并添加了canBecomeFirstResponder
,canResignFirstResponder
,becomeFirstResponder
和resignFirstResponder
,所有这些都返回是。问题是,当我点击视图时,没有任何反应。
定义自定义inputView
并没有帮助,它就像没有发生任何事情一样。
感谢任何指导。 谢谢, ž。
答案 0 :(得分:1)
您需要创建自定义TextField并覆盖以下方法。
- (CGRect)caretRectForPosition:(UITextPosition *)position
{
return CGRectZero;
}
现在使用此自定义文本字段创建所需的Textfield并将其输入视图设置为pickerview。上面的方法将删除闪烁的光标。对于不从任何BT键盘输入的文本,你应该在textfield的委托方法中这样做
//防止使用蓝牙键盘复制,粘贴或编辑文本。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return NO;
}
答案 1 :(得分:0)
1.创建(UIview)UIResponder类的子类
2.redeclare inputview as read-write
@property (nonatomic, strong, readwrite) UIView *inputView;
3.set canBecomeFirstResponder为YES
- (BOOL)canBecomeFirstResponder {
return YES;
}
4.设置输入视图,例如datepicker
self.inputView = self.datePicker;
5.在您需要时将UIResponder设置为firstResponder
[self becomeFirstResponder];
5.你可以看到像键盘一样的日期选择器显示