标签: uitextviewdelegate

更改UITextView.inputView时是不是调用了textViewDidChange?

我拖了一个UITextView和挂钩委托File's Owner.
textViewDidChange仅使用默认的键盘调用,但没有从我的键盘发生时输入文本.

如何UITextView在将其inputView设置为自定义键盘时启用委托?

这是我的代码

ViewController.m

-(void)viewDidLoad{
    self.myKeyboard = [[[NSBundle mainBundle] loadNibNamed:@"MyKeyboard" owner:nil options:nil] objectAtIndex:0];
    [self.myKeyboard setTextView:self.textView];
}

#pragma mark TestViewDelegate
    - (void)textViewDidChange:(UITextView *)textView{
        NSLog(@"TextDidChange: %@",textView.text);
    }
Run Code Online (Sandbox Code Playgroud)

MyKeyboard.h

@interface MyKeyboard : UIView
@property (weak,nonatomic) id<UITextInput> textView;
-(void)setTextView:(id<UITextInput>)textView;
@end
Run Code Online (Sandbox Code Playgroud)

MyKeyboard.m

 -(void)setTextView:(id<UITextInput>)textView{
        _textView = textView;
        if ([textView isKindOfClass:[UITextView class]])
            [(UITextView *)textView setInputView:self];
        else if ([textView isKindOfClass:[UITextField class]])
            [(UITextField *)textView setInputView:self];
    }
Run Code Online (Sandbox Code Playgroud)

objective-c uitextview uitextviewdelegate ios

3
推荐指数
1
解决办法
3963
查看次数

在App中的UITextView中打开链接

我正在尝试打开我UITextView在应用程序中识别的链接.我正在使用该UITextView delegate方法shouldInteractWithURL来实现这一目标.

我的代码似乎适用于app的app加载; 但是,除了应用程序之外,它仍然在Safari中打开链接.有没有什么办法解决这一问题?

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {

    println("called")
    let webViewController = WebViewController()        
    webViewController.urlToLoad = URL

    if let navigationController = navigationController {
        println("navigating")
        navigationController.pushViewController(webViewController, animated: true)
        return true
    }
    else {
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这WebViewController只是我制作的一个自定义类,它显示UIWebView整个屏幕.它有一个属性urlToLoad,它将在其中加载的URL UIWebView.

我也分配delegateUITextViewUIViewController已经在实施这个代理功能.

有谁知道如何让应用程序停止开放野生动物园?

nsurl uitextview uitextviewdelegate ios swift

3
推荐指数
1
解决办法
2388
查看次数

如何拦截 UITextView 中链接上的电话号码点击(通话按钮)?

当我们单击文本视图中的数字时,是否有回调来识别用户何时单击弹出窗口中的“呼叫”

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool

上面提到的函数将帮助我识别 UITextView 中的链接已被单击,而是否有一个特定的回调来识别是否单击了“调用”或单击了“取消”

uitextview datadetectortypes uitextviewdelegate ios swift

3
推荐指数
1
解决办法
2603
查看次数

iPhone:调用textViewDidChange是否安全?

我正在查看UIViewController符合UITextViewDelegate协议的代码,并且有一个名为的实例变量someTextView.

someTextView.text = @"some text";
[self textViewDidChange:someTextView];
Run Code Online (Sandbox Code Playgroud)

这样安全吗?那对我来说看起来不是犹太人.是否有必要打电话textViewDidChange:?它不会被自动调用someTextView.text = @"some text"吗?

我正在调试此错误iPhone目标-C:键盘不会隐藏resignFirstResponder,有时候

iphone objective-c uitextviewdelegate uitextfielddelegate

2
推荐指数
1
解决办法
1336
查看次数

UIText查看委托问题

我想从UItextview中取消键盘.如何以编程方式实现UItextView委托方法.

iphone uitextviewdelegate ios5

2
推荐指数
2
解决办法
276
查看次数

在UITextView中连续退格许多字符

我想检查一个用户是否在textView中对一个字符进行退格,如果有任何相同的字符连接它以便将它们全部删除...

例如,如果我正在检查的字符是"e",我有文本"easy heeeeeello",并且用户开始按退格键,它将变为:

容易heeeeeello - >容易heeeeeell - >容易heeeeeel - >容易heeeeee - >容易h

代码应该检测到按下退格键.然后它会检测哪些文本将被删除,如果该文本是一个字符(在我们的例子中是"e"),它将检查是否有更多的"e"触及"e"创建一条"e" s并删除所有.

你能帮助我吗?

iphone xcode objective-c uitextviewdelegate ios

2
推荐指数
1
解决办法
2295
查看次数

如何通过在UITextView ios中点击返回键来创建新行

我刚接触iPhone.我在我的应用程序中添加了一个使用XIB的UITextView,现在点击完成键后,它只是简单地重新键盘.但是,我想通过点击它创建一个新行,意味着它应该转到下一段.请帮我实现我的输出.这是我的代码:

- (void)textViewDidEndEditing:(UITextView *)textView1
{
    if (![textView1 hasText]) {
        [textView1 addSubview:placeholderLabel];
    }
    else{
        NSLog(@"done button clicked!!");
    }

    CGRect rect;

    if(screenBounds.size.height == 568)//iPhone5
    {
        rect = CGRectMake(5, 76, 310, 491);
    }
    else{
        if(_kisiOS7){
            rect = CGRectMake(5, 76, 310, 404);
        }
        else{
            rect = CGRectMake(0, 44, 320, 436);
        }
    }

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];

    txtView.frame = rect;

    [UIView commitAnimations];
}


- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if (range.length == 0) {
        if ([text isEqualToString:@"\n"]) {
            [textView resignFirstResponder];
            return NO;
        } …
Run Code Online (Sandbox Code Playgroud)

uitextview uitextviewdelegate ios

2
推荐指数
1
解决办法
9233
查看次数

无法将类型为"MyViewController"的值分配给"UITextFieldDelegate"类型的值

我不知道为什么我在尝试这个时会收到此错误(此问题的标题是错误,如下面的屏幕截图所示)self.tv_salaryNumber.delegate = self.

我的类EarningsVC实际上继承了UITextFieldDelegate协议,所以无法弄清楚为什么会出现这个错误.(你也可以在hte窗口的最右边看到它Quick Help.

在此输入图像描述

uitextviewdelegate ios swift

2
推荐指数
1
解决办法
2724
查看次数

UITextView 剩余字符数

如何设置残留在人物UILabelUITextView

我已经为UITextField,但同样的代码不起作用..

这是我尝试过的:

func textView(textView: UITextView, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
 {
        if string == ""
        {
            if plainTextView.text!.characters.count == 0
            {
                charCount = 0
                countLabel.text = String(format: "%i Characters Left", maxLength - charCount)
                return false
            }
            charCount = (plainTextView.text!.characters.count - 1)
            countLabel.text = String(format: "%i Characters Left", maxLength - charCount)
            return true
        }
        else
        {
            charCount = (plainTextView.text!.characters.count + 1)
            countLabel.text = String(format: "%i Characters Left", maxLength - charCount)

            if …
Run Code Online (Sandbox Code Playgroud)

uitextview uitextviewdelegate ios swift

2
推荐指数
1
解决办法
3391
查看次数

UITextView观察文本变化

我想监听 UITextView 中的每个文本更改。设置非常简单。

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    NotificationCenter.default.addObserver(
        self,
        selector: #selector(textViewDidChangeWithNotification(_:)),
        name: UITextView.textDidChangeNotification,
        object: nil
    )
}

@objc private func textViewDidChangeWithNotification(_ notification: Notification) {
     print("Text: \(String(describing: inputTextView.text))")
}
Run Code Online (Sandbox Code Playgroud)

在大多数情况下它工作正常,但后来我发现了一些 UITextInput 的黑盒魔法。

第 1 步:输入“我”。我们可以在输出中看到“I”。
第二步:重要的一步。双击字段选择所有文本。
第 3 步:从单词建议中选择“如果”。

在此输入图像描述

并且调试器输出中没有“If”。另一方面,如果插入符号位于“I”单词的末尾,并且我们选择“If”,则输出结果是正确的。

在此输入图像描述

有什么方法可以观察所有文本变化吗?

我可以使用以下方式获取文本:

func textViewDidEndEditing(_ textView: UITextView)
Run Code Online (Sandbox Code Playgroud)

但我需要实时观察所有的变化。我总是看到的另一个选择是使用:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool
Run Code Online (Sandbox Code Playgroud)

但这种方法对于观察变化来说是一个不好的做法。如果你重复输入两个空格,iOS 会将第一个空格替换为点,并且显然不会通知你此方法中的此操作以及许多其他问题。

uitextview uikit uitextviewdelegate ios uitextinput

2
推荐指数
1
解决办法
1300
查看次数