- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我知道之前有人问过这个问题,但我对答案不满意,即禁用它。有一个根本区别:禁用 View 不会触发事件,但对于只读 View ,它仍应触发事件(例如 TouchUpInside),我需要它。我唯一不想要的是键盘输入。
原因是我有几个输入框,有的可以直接使用UITextField
,有的则不能。我想让它们看起来相似。所以,我想使用 UITextField
来显示所有这些。其中一些需要是只读的,以便我可以使用触摸事件进行替代输入。
或者可能有一种完全不同的方式来做到这一点?
编辑:这是我的 MonoTouch 项目。我对 Objective-c 的了解非常有限。
最佳答案
假设您有 2 个文本字段实例变量连接到您在 Interface Builder 中创建的文本字段。让我们称它们为 myReadOnlyTextField
和 myEditableTextField
。确保将 Interface Builder 中每个文本字段的 delegate
属性连接到 View Controller (“文件的所有者”)[1]。现在,在 View Controller @implementation
(.m 文件)中,使用方法 textFieldShouldBeginEditing:
并放入一些逻辑来确定要允许编辑的文本字段以及不允许编辑;像这样:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
BOOL editable;
if (textField == myReadOnlyTextField) {
editable = NO;
} else if (textField == myEditableTextField) {
editable = YES;
} else {
// editable = YES/NO/Other Logic
}
return editable;
}
来自UITextFieldDelegate
Documentation :
textFieldShouldBeginEditing:
Asks the delegate if editing should begin in the specified text field.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
Parameters
textField
- The text field for which editing is about to begin.Return Value
YES
if an editing session should be initiated; otherwise,NO
to disallow editing.Discussion
When the user performs an action that would normally initiate an editing session, the text field calls this method first to see if editing should actually proceed. In most circumstances, you would simply return YES from this method to allow editing to proceed.Implementation of this method by the delegate is optional. If it is not present, editing proceeds as if this method had returned YES.
UITextField
Documentation也是一本好书。
[1] 您也可以通过编程方式执行此操作。这是一个例子:
- (void)viewDidLoad {
[super viewDidLoad];
// .....
myReadOnlyTextField.delegate = self;
myEditableTextField.delegate = self;
}
关于ios - iPhone/iPad : How to make UITextField readonly (but not disabled)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7949071/
我是一个为 iOS 设备开发的新手。我在 InterfaceBuilder 上插入了一个 UITextField,并分配了代码: @interface ComposeViewController :
我有两个要用于登录的 UITextFields,一个用于用户名,一个用于密码。在我无法关闭第一个 UITextField 中的键盘之前,但我设法解决了这个问题,现在的问题是,一旦它关闭,我就无法单击另
在 tvOS 中编辑 UITextField 会显示一个新 View ,用户可以在其中输入文本,文本输入完成后,用户将返回到之前的 View 。但是,我发现当我从文本编辑器返回时,我编辑的文本没有显示
我在同一个 ViewController 上有三个 UITextfields(customerRequestTextField 、 fundsAvailableTextField 和 amountOw
我有一个要求,需要将内容从一个 UITextField 复制到同一屏幕上的另一个 UITextField 中。它就像一个别名,一旦用户开始输入,我就应该开始复制内容。我正在使用方法 (BOOL)tex
我有一个 ViewController、许多 UITextField(一个在另一个下面)和第一个 UITextField 右边的按钮。 按下按钮时,我希望在此下方显示另一个 UITextField(每
我有 3 个 UITextField(位置、地址、 zip )。我在 viewDidLoad 中隐藏了 2 个字段。 Addres1.hidden = YES; Zip1.hidden = YES;
在 Swift 中,我有一个 UITextField、textA 和一个 UITextField、textB。 textA 有时会被禁用,但 textB 始终启用。 textA 被禁用: textA.
我有 2 个 UITextFields。一个是美元,另一个是瑞尔。当我输入 textfield$ 时,我想自动查看 textfieldRiel 中的值。怎么做 ? 最佳答案 实现 uitextfiel
我想将一个 UITextField 属性转移到另一个 UITextField。我该怎么做? 这是我的完整场景: 我创建了一个自定义单元格,其中有一个 UITextField。 现在,当我在我的 UIT
我有一个 UITextField,我想将其长度限制为 4 个字符,这是它的代码: func textField(textField: UITextField, shouldChangeCharacte
@IBOutlet weak var labelLabel: UILabel @IBOutlet weak var textFieldField: UITextField @IBAction func
我在 xib 中定义了一个 UITableViewCell。这个 UITableViewCell 有一个 UITextField,叫做 itemText。此 UITableViewCell 也采用其他
我们的应用程序有几个 UITextField,用户可以在其中输入字母数字输入代码,例如“AA149873A”。 我们希望画外音将这些读为“A A 1 4 9 8 7 2 A”,但它却将数字读为数字:“
在我的 iOS 应用程序中,我有一个文本字段,其中有一个分配给它的 inputView 的选择器 View 。在 iOS 设备上,每当用户点击文本字段时,选择器 View 就会弹出。但是,当我将它作为
在 iOS 13 中,访问 UITextField 时发生崩溃_placeholderLabel.textColor 标签键。 用于应用占位符文本颜色的键。 [textfield setValue:[
我想复制iMessage结构的效果,点击工具栏中的UITextView,键盘就会出现。但我不知道如何在打字时显示文本。我认为当键盘出现时我应该将 UITextField 向上移动 class View
我有两个 UITextField,cDiseasePicker 和 optionalLMS。 我的cDiseasePicker使用UIPickerView作为输入,选项为“否”、“是,1VD”、“是,
当点击某个 CA 层时,我动态创建了两个 UITextField。我已将第一个文本字段设为第一响应者,我想要的是,当我在第一个文本字段中输入文本并按完成时,我希望第二个文本字段成为第一响应者。这就是我
我正在寻找 UITextField 的方法,它在我输入 UITextField 后产生效果。 我有一个方法来进行计算我使用一个按钮,但我不想使用,我希望你在我在 UITextField 中输入数字后运
我是一名优秀的程序员,十分优秀!