【问题标题】:Custom keyboard for input in a custom uitableview cell用于在自定义 uitableview 单元格中输入的自定义键盘
【发布时间】:2011-06-21 05:45:34
【问题描述】:

我有一个包含 tableview 的视图(我将此视图称为 EquationView,它的控制器称为 EquationViewController)。表格视图单元格是具有标签和文本字段的自定义单元格,可以接受地表示变量及其值。当在文本字段中开始编辑时,我已经能够让我的自定义键盘出现。

但是,我无法让击键出现在正确的单元格中,这是因为我无法弄清楚如何将带有正在编辑的文本字段的单元格的 indexPath 发送到自定义键盘控制器类。我已将我的 EquationViewController.h 文件包含在我的自定义键盘控制器类中,并且能够通过手动将 indexPath 设置为指定行来更改 tableview 的 textFields 中的文本。这是键盘类定义:

#import <UIKit/UIKit.h>
#import "EquationViewController.h"


@interface CustomNumberPadViewController : UIViewController {
    EquationViewController *equationViewController;
}
@property (nonatomic, retain) EquationViewController *equationViewController;

-(IBAction)buttonPressed:(id)sender;

@end

我的操作方法看起来像这样(到目前为止):

-(IBAction)buttonPressed:(id)sender{

    VariableCell *cell = (VariableCell *)[equationDetailViewController.myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];

    cell.variableValue.text = @"test";

}

这会让“test”这个词出现在我在索引路径中设置的任何行上。

所以我想知道的是,有没有办法将正在编辑其 textField 的单元格的 indexPath 传递/获取到我的自定义键盘控制器类中的 action 方法?

【问题讨论】:

    标签: iphone objective-c keyboard


    【解决方案1】:

    为什么不将 UIViewController 设置为 UITextFields 的委托并捕获 textFieldDidBegin: 委托方法?

    【讨论】:

    • 你的权利,这就是要走的路。我忘记在 IB 中连接代表。我最终在我的 EquationViewController 中声明了一个变量 (selectedTextfieldRow)。然后我根据它们在表格视图中的行为每个字段分配标签。然后在 textFieldDidBegin 中,我将标签号分配给 selectedTextfieldRow 变量。然后在键盘控制器的操作方法中,我检索 selectedTextfieldRow 值并将其用作调用所选单元格的索引路径的行。它看起来有点绕,但它确实有效。感谢您的帮助!
    • 您也可以将 UITextField 直接存储在您的 ivar 中,而不是使用标签。如果你然后需要 indexPath,你可以去它的 superviews 找到单元格(例如 textField.superview.superview 如果 textField 在 UITableViewCell 的 contentView 中)并使用 UITableView 的indexPathForCell 来获取 indexPath。但这取决于您的需求
    猜你喜欢
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多