我正在做一个UITextField有UIPickerViewas的inputView.它很好,除了我可以通过复制,粘贴,剪切和选择文本进行编辑,我不想要它.只有Picker才能修改文本字段.
我明白了,我可以通过设置禁止编辑setEnabled或setUserInteractionEnabled到NO.好的,但TextField停止响应触摸和选择器不显示.
我能做些什么来实现它?
我正在制作一个注册警报视图,其中有一个UITextField,用户可以在其中输入注册号.一切都是他们的,但我想以编程方式从文本字段中删除复制粘贴功能,因为他们没有InterfaceBuilder版本的文本字段我不知道如何做到这一点..
这是我到目前为止的UIalertview ......
- (void)pleaseRegisterDevice {
UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Please Register Device!" message:@"this gets covered" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
regTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
[regTextField setBackgroundColor:[UIColor whiteColor]];
regTextField.textAlignment = UITextAlignmentCenter;
[myAlertView addSubview:regTextField];
[myAlertView show];
[myAlertView release];
}
Run Code Online (Sandbox Code Playgroud) 我很难UITextView禁止选择文本.
我试过了:
canCancelContentTouches = YES;
Run Code Online (Sandbox Code Playgroud)
我尝试过子类化和覆盖:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
Run Code Online (Sandbox Code Playgroud)
(但只有在选择后才会调用)
- (BOOL)touchesShouldCancelInContentView:(UIView *)view;
Run Code Online (Sandbox Code Playgroud)
(我没有看到被解雇)
- (BOOL)touchesShouldBegin:(NSSet *)touches
withEvent:(UIEvent *)event
inContentView:(UIView *)view;
Run Code Online (Sandbox Code Playgroud)
(我也没有看到被解雇)
我错过了什么?
在文件中实现类的类别时,默认情况下该类的所有实例都属于该类别吗?
我是Objective-C的新手,我试图使我的不可编辑的UITextView不可选.我使用以下类别找到了这个答案:https: //stackoverflow.com/a/8013538/1533240
其中有以下解决方案:
@implementation UITextView (DisableCopyPaste)
-(BOOL) canBecomeFirstResponder
{
return NO;
}
@end
Run Code Online (Sandbox Code Playgroud)
我将代码段添加到我的代码中,但它似乎没有起作用,我仍然可以选择文本.我的声明UITextView是通常的:
titleLabel = [[UITextView alloc] initWithFrame:frame];
我试着改变声明,[DisableCopyPaste alloc]但似乎没有用......哈哈.
谢谢!
我在UITextView中有一些文本.我不希望它是可选择的.我怎样才能做到这一点?
如何禁用“复制”,“全选” UITextView,但我需要在中单击链接UITextview。
这是所有动作禁用,但允许选择。我只需要可点击的链接。
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
return false
}
Run Code Online (Sandbox Code Playgroud) 我有一个文本框,我希望用户只输入数字.我在那里实现了数字键盘.但是,如果有人将我的应用程序放在后台并从其他应用程序复制一些字符串并返回到我的应用程序并粘贴它,它会成功地将字符串内容粘贴到我的数字文本字段中.我该如何限制这种情况?
如何使用NSLog获取consol,UITextView上的gestureRecogniser列表?
这样的事情?
NSLog([UIGestureRecognizer description]);
Run Code Online (Sandbox Code Playgroud) 我有一个UITextView可以编辑的.我有另一个"复制"按钮,所以我想禁用文本视图的内置"复制"和"剪切"功能.当在文本视图中双击时,这些显示为黑色迷你弹出窗口.有没有办法只阻止这两个选项,仍然让用户编辑文本?
我有一个自定义UItextView子类,我覆盖canBecomeFirstResponder():
class MyTextView: UITextView {
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
override func canBecomeFirstResponder() -> Bool {
return false
}
}
Run Code Online (Sandbox Code Playgroud)
我这样做是为了允许数据检测链接(电话号码是URL)在一个UITextView功能中,而视图中没有任何其他文本是可选择的,但这与问题无关.
canBecomeFirstResponder()是我想要覆盖的唯一属性/方法,因此子类化似乎有点过分.我将此自定义类与使用Interface Builder创建的视图一起使用.有没有办法可以懒惰地覆盖UIKit对象属性的IBOutlet?像这样的东西:
@IBOutlet weak var contactTextView: UITextView! {
override func canBecomeFirstResponder: Bool = {
return false
}
}
Run Code Online (Sandbox Code Playgroud)
我不想使用扩展,UITextView因为我只想覆盖canBecomeFirstResponder()特定的UITextView,而不是我的项目中使用的每一个.
ios ×7
iphone ×6
objective-c ×5
uitextview ×5
uitextfield ×3
cocoa-touch ×2
swift ×2
cocoa ×1
copy-paste ×1
iboutlet ×1
ipad ×1
nslog ×1
uialertview ×1
uipickerview ×1