我正在给一个文本视图来推特一些字符串.
我正在应用以下方法将字符数限制为140.
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if([text isEqualToString:@"\b"]){
DLog(@"Ohoooo");
return YES;
}else if([[textView text] length] > 140){
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
除了退格不起作用的第一个条件之外,代码运行良好.假设我已达到140个字符的限制,因此该方法将给我假,用户无法插入更多字符,但在此之后,当我尝试删除某些字符时,文本视图的行为与禁用时相同.
那么问题是如何从textview.text文本视图中删除字符或重新启用文本视图.
我使用UITextViewDelegate和添加InputAccessoryView中textViewDidBeginEditing:
[textView setInputAccessoryView:doneBar];
Run Code Online (Sandbox Code Playgroud)
doneBar不是零,它出现在第二次打开时.
有没有其他人这个问题?
提前致谢.
我想实现Code,通过它我可以开始在iphone sdk中的UITextView中的光标的任何位置插入文本
任何的想法?先感谢您..
我引用了这个链接:iPhone SDK:如何创建一个UITextView,在您点按的位置插入文本?
但没有得到它.
在我使用这种方法之前....
//TextView is a UITextView
[TextView scrollRangeToVisible:NSMakeRange([TextView length], 0)];
Run Code Online (Sandbox Code Playgroud)
...它将以编程方式滚动到UITextView的末尾,但它似乎不适用于iOS 4.0.有没有办法以编程方式滚动到UITextView的末尾而不改变editablility或插入一个点(用户可以点击UITextView并显示键盘)?
另外,我是否需要将文件所有者指定为委托?这有什么不同吗?
我正在使用UITextView委托方法来执行一些自定义工作,例如当用户点击URL或附件时打开应用内浏览器:
func textView(_ textView: UITextView,
shouldInteractWith URL: URL,
in characterRange: NSRange,
interaction: UITextItemInteraction) -> Bool
Run Code Online (Sandbox Code Playgroud)
在iOS 13中,即使用户只是在URL上滚动(这是不期望的),也会调用此委托方法。此行为也适用于图像附件。
现在通过交互调用该dele方法。
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 6.1 7.1
* frame #0: 0x0000000104a54c5c ProjectS1`PostListViewController.textView(textView=0x00000001090a4600, URL=Foundation.URL @ 0x000000016b5d1200, characterRange=location=161, length=9, interaction=invokeDefaultAction, self=0x0000000109b03990) at PostListViewController.swift:610:9
frame #1: 0x0000000104a54d70 ProjectS1`@objc PostListViewController.textView(_:shouldInteractWith:in:interaction:) at <compiler-generated>:0
frame #2: 0x00000001b3293eec UIKitCore`-[UITextView _allowInteraction:forTextInteractableItem:] + 212
frame #3: 0x00000001b2602160 UIKitCore`-[_UITextInteractableItem _allowInteraction:] + 140
frame #4: 0x00000001b2601f68 UIKitCore`-[_UITextInteractableItem canInvokeDefaultAction] + 100
frame #5: 0x00000001b31dd528 UIKitCore`-[_UITextSimpleLinkInteraction _canBeginInteractionSessionForLinkAtPoint:asTap:] + …Run Code Online (Sandbox Code Playgroud) 默认情况下iOS不支持我的语言,所以unicode不是一个选项所以我在UITextView上使用嵌入式真实字体
它在很大程度上起作用,但我的问题就像阿拉伯语,希伯来语我的语言是从右到左书写的.所以我需要改变文本的方向(Not Text Alignment).
我做了一些搜索,他们都谈论NSLocale和东西,但它可以在代码中改变吗?如果我可以把它改成像阿拉伯语/希伯来语那样它我会猜测,但它应该在代码中完成,因为我不想改变手机的语言.
那么我的文本输入选择到底是什么?任何帮助,将不胜感激.
谢谢.
我必须做一些根本错误的事情,我的UITextViewDelegate实现方法没有触发.我有一个UITextView,它是UITableCellView的子视图,并且没有调用委托.
- (void)textViewDidBeginEditing:(UITextView *)textView {
NSLog(@"textViewDidBeginEditing");
// never called...
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSLog(@"shouldChangeTextInRange");
// never called...
}
Run Code Online (Sandbox Code Playgroud)
建议?我不知道它是否重要,但协议在我的@interface声明中明确命名.
@interface DetailViewController () <UITextViewDelgate, ..., ....>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试实现一个条款和条件页面的形式,其中"继续"按钮仅在用户滚动到UITextView的底部时启用.到目前为止,我已将我的类设置为UIScrollView委托并已实现以下方法:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"Checking if at bottom of UITextView");
CGPoint bottomOffset = CGPointMake(0,self.warningTextView.frame.size.height);
//if ([[self.warningTextView contentOffset] isEqualTO:bottomOffset])
{
}
}
Run Code Online (Sandbox Code Playgroud)
我已经评论了if语句,因为我不确定如何检查UITextView是否位于底部.
我试图在UITextView(我正在构建一个LateX编辑器)中集成撤消/重做功能而没有运气,说实话我真的很困惑这个论点.我不明白这两个操作涉及的步骤,我的意思是我需要两种方法
一个疑问是我在哪里获得最后插入的文本?换句话说,我必须注册撤消?
我知道我所写的并不是最好的解释,但我希望这里有人在过去遇到同样的问题并且可以给我一个提示.基本上,要恢复,我必须将撤消/重做功能添加到textview,可能有两个按钮与这些操作链接.
提前致谢
我希望有快速类型建议,以便在uitextview中打开键盘时将我自己的某些应用程序级别所需的短语作为建议.
例如,如果用户键入"All" - 在quicktype suggesstion中我想显示"All is well"或"All is is expected".
我可以自定义quicktype建议文本吗?
如果没有,那么可以通过其他方式将这些建议显示在键盘打开时.
uitextview ×10
ios ×7
iphone ×6
cocoa ×1
cocoa-touch ×1
ios13 ×1
ios4 ×1
ios8 ×1
objective-c ×1
swift ×1
uiscrollview ×1