我正在构建一个带有自定义界面的应用程序来输入文本,并使用UILabel进行显示.然后,用户必须能够复制和粘贴文本,因此我选择了UITextField.
我遇到的问题是我无法弄清楚如何让UITextField允许选择,复制,粘贴等,但是在选择字段时没有显示键盘.
我已经阅读了许多与此类似的帖子,但没有人提出完全相同的问题,也没有任何解决方案适合我.我已经尝试使该字段不可编辑,这会阻止键盘出现,但也不允许复制和粘贴.我还阅读了建议继承UITextField的注释,但我读过的没有给出具体的例子.
可以简单地完成我想要的工作,还是我需要为键盘或其他选项创建自定义视图?
谢谢,安德鲁
解:
最后,我在stackoverflow上发现了另一个类似的(但不是确切的)问题,一个答案给出了我的问题的解决方案.解决这个问题的方法就是让应用程序显示一个虚拟视图作为键盘,其他一切都按照应有的方式工作.
UIView *dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
VIN.inputView = dummyView; // Hide keyboard, but show blinking cursor
Run Code Online (Sandbox Code Playgroud)
它适用于UITextField和UITextView,需要将它们设置为可编辑.
And*_*yer 27
解:
最后,我在stackoverflow上发现了另一个类似的(但不是确切的)问题,一个答案给出了我的问题的解决方案.解决这个问题的方法就是让应用程序显示一个虚拟视图作为键盘,其他一切都按照应有的方式工作.
UIView *dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
VIN.inputView = dummyView; // Hide keyboard, but show blinking cursor
Run Code Online (Sandbox Code Playgroud)
它适用于UITextField和UITextView它们需要设置为可编辑.
yag*_*rax 10
作者的代码......
UIView *dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
VIN.inputView = dummyView; // Hide keyboard, but show blinking cursor
Run Code Online (Sandbox Code Playgroud)
(其中'VIN'是UITextField变量,此代码放在viewDidLoad之类的地方)
...确实可以防止显示iPhone/iPad弹出键盘.
但是,这只是键盘界面的"显示"部分.如果您安装了外接键盘,例如Apple的物理iPhone/iPad键盘,可以插入30针或其中一个支持蓝牙的键盘(或者甚至使用带有模拟器的Mac键盘),用户仍然可以输入字段而不用显示键盘弹出显示.
此外,即使没有显示键盘弹出窗口,用户仍然可以通过双击字段并选择PASTE从粘贴板粘贴到字段中.
以下ADDITIONAL代码可防止使用这些键盘并防止PASTE:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog(@"myXViewController shouldChangeCharactersInRange");
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
...仍然允许选择,但不能编辑字段中的文本.
| 归档时间: |
|
| 查看次数: |
10705 次 |
| 最近记录: |