小编evi*_*iuz的帖子

Highgui和红宝石

我需要编写一个简单的项目,我正在使用opencv,ruby和mac.我通过brew安装了opencv,并通过gem install安装了rb_webcam.

# -*- coding: utf-8 -*-

require "opencv"
require "rb_webcam"

capture = Webcam.new
Run Code Online (Sandbox Code Playgroud)

这段代码抛出

$ ruby tracking.rb
/Users/evilgeniuz/.rvm/gems/ruby-1.9.3-p125/gems/nice-ffi-0.4/lib/nice-ffi/library.rb:98:in `load_library': Could not load highgui. (LoadError)
    from /Users/evilgeniuz/.rvm/gems/ruby-1.9.3-p125/gems/rb_webcam-0.3.0/lib/rb_webcam.rb:7:in `<module:Highgui>'
    from /Users/evilgeniuz/.rvm/gems/ruby-1.9.3-p125/gems/rb_webcam-0.3.0/lib/rb_webcam.rb:4:in `<top (required)>'
    from /Users/evilgeniuz/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `require'
    from /Users/evilgeniuz/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require'
    from /Users/evilgeniuz/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from tracking.rb:4:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我不知道怎么能指出highgui在哪里.

UPD:通过从https://github.com/TyounanMOTI/rb_webcam下载gem来解决它,并手动构建和安装它.

ruby opencv

6
推荐指数
1
解决办法
2215
查看次数

NSMutableArray removeObjectAtIndex奇怪的问题.

奇怪的行为NSMutableArray.

我已经创建了对象并填充了它.

NSMutableArray *array = [[NSMutableArray alloc] 
                         initWithObjects:@"1",@"2",@"3",@"4", nil];
[array removeObjectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

在删除它之前看起来像:

array   NSMutableArray *    0x1040b5e0
[0] id  0x00088a44 @"1"
[1] id  0x00088a54 @"2"
[2] id  0x00088a64 @"3"
[3] id  0x00088a74 @"4"
Run Code Online (Sandbox Code Playgroud)

删除FIRST元素后:

array   NSMutableArray *    0x1040b5e0
[0] id  0x00000000 
[1] id  0x00088a54 @"2"
[2] id  0x00088a64 @"3"
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

objective-c nsmutablearray

6
推荐指数
1
解决办法
2469
查看次数

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
查看次数