我有一个应用程序,用户在其中选择表格视图中的项目,然后单击行内的 textField 并放置一个数字(用于数量)。我想做的是,当用户单击textField时,符号和数字键盘会出现,甚至更好的是,一个数字键盘。这是我到目前为止所拥有的:
在我的SearchResultTableViewCell.m
类(我用于自定义表视图单元格的类)中,我有这个函数:
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField setKeyboardType:UIKeyboardTypeNumberPad];
[textField reloadInputViews];
return YES;
}
到目前为止,它不起作用。我也试着做
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[quantity setKeyboardType:UIKeyboardTypeNumberPad];
[quantity reloadInputViews];
return YES;
}
其中quantity
是 .h 文件中声明的IBOutlet UITextField
。
您应该在custom tableview cell's
.h文件中声明textfield
IBOutlet
并设置键盘类型
1)在自定义单元格的.m文件中awakeFromNib
,
-(void)awakeFromNib
{
[self.textField setKeyboardType:UIKeyboardTypeNumberPad];
}
2)cellForRowAtIndexPath
表视图的数据源方法。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Init you cell as you are doing right now
CustomCell* cell;
[cell.textField setKeyboardType:UIKeyboardTypeNumberPad];
}
您正在"textFieldShouldReturn
"处执行所有这些工作,这是将文本输入到某个文本字段(数量文本字段或其他文本字段)中的结束。
为什么不在"textFieldShouldBeginEditing:(UITextField *)textField
"中执行此操作,或者为什么不简单地在情节提要或xib文件中设置数量文本字段的键盘类型?
您使用了错误的方法来设置键盘!
按下键盘上的返回按钮时调用textFieldShouldReturn
。
在初始化代码中的 textField 或在 .xib 中设置属性时必须设置键盘类型,或者如果要在用户单击 textField 时设置键盘类型,请将代码放入以下方法中textFieldShouldBeginEditing:(UITextField *)textField