问题列表 - 第36790页

如何在UITextView中找到光标的像素位置?

我正在为iPad开发一个简单的写作应用程序.

我正在尝试计算光标的像素位置UITextView.我花了几个星期来设计这个,但我仍然无法想象这样做.

在stackoverflow中,Tony编写了一个很好的算法来查找光标的像素位置.

UITextView中光标的像素位置

我通过一些修改实现了它,它几乎可以工作,它给出了正确的光标像素位置.但是,它只适用于英文字母.

如果行尾有中文或日文字符UITextView,即使汉字之间没有空格,也要进行字符包装而不是自动换行.我认为Tony的算法UITextView只能执行自动换行(使用英文字母).

有没有其他方法可以找到光标的像素位置UITextView

或者有没有办法确定一个特定的字符是否像汉字一样包含字符或像英语一样包装?

加成:

这是我基于Tony算法的实现.我一个放置UITextView在一个横向模式,因此,其宽度为1024,我使用具有尺寸21的自定义字体你应该改变sizeOfContentWidthsizeOfContentLine适当.sizeOfContentWidth小于实际宽度,并且sizeOfContentLine大于实际字体大小(行高>字体大小).

对于杂乱的代码和评论抱歉!还有一些小错误,如果你在行尾输入中文字符(没有自动换行),它会给出错误的位置.

#define sizeOfContentWidth 1010
#define sizeOfContentHeight 1000
#define sizeOfContentLine 25

    // Stores the original position of the cursor
NSRange originalPosition = textView.selectedRange;    

// Computes textView's origin
CGPoint origin = textView.frame.origin;

// Checks whether a character right to the current cursor is a non-space character
unichar c = ' ';

if(textView.selectedRange.location != [textView.text …
Run Code Online (Sandbox Code Playgroud)

iphone cursor uitextview ipad ios

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

带后代和后代text()谓词的XPath查询

我想构造一个XPath查询,它将返回一个"div"或"table"元素,只要它有一个包含文本"abc"的后代.一个警告是它不能有任何div或table后代.

<div>
  <table>
    <form>
      <div>
        <span>
          <p>abcdefg</p>
        </span>
      </div>
      <table>
        <span>
          <p>123456</p>
        </span>
      </table>
    </form>
  </table>
</div>
Run Code Online (Sandbox Code Playgroud)

所以这个查询唯一正确的结果是:

/div/table/form/div 
Run Code Online (Sandbox Code Playgroud)

我最好的尝试看起来像这样:

//div[contains(//text(), "abc") and not(descendant::div or descendant::table)] | //table[contains(//text(), "abc") and not(descendant::div or descendant::table)]
Run Code Online (Sandbox Code Playgroud)

但不会返回正确的结果.

谢谢你的帮助.

xml xpath descendant predicates

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

null是否具有对象类型?

为什么这个输出:"内部String参数方法"?不是null"对象"类型?

class A {
    void printVal(String obj) {
        System.out.println("inside String argument method");
    }

    void printVal(Object obj) {
        System.out.println("inside Object argument method");
    }

    public static void main(String[] args) {
        A a = new A();
        a.printVal(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

java

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

如何在WP7应用程序中嵌入和读取文本文件?

我正在尝试包含一个文本文件,其中包含我在应用启动时需要读取的一些静态数据.我添加了文件并将Build Action标记为"Resource",但我不确定如何以流形式实际读取它.有人知道怎么做吗?

silverlight resources windows-phone-7

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

NSuserDefault或Sqlite

我只是想清楚一些关于NSuser Default和Sqlite的概念.PLZ建议我,何时使用NSUserdefault以及何时使用sqlite.

我可以使用NSuserdefault来处理一些大数据吗?

iphone

0
推荐指数
1
解决办法
696
查看次数

由于对象的当前状态 - 列表上的Linq,操作无效

在List上运行Linq查询时抛出此错误.

我正在使用带有C#的Unity3D 3.0(Unity3D使用Mono 2.6).据我所知,Unity3D是单线程的.它的工作原理是将继承基类的"脚本"(c#.cs文件)附加到"GameObject".此外,Unity控制脚本的实例化和序列化,因此您不能使用构造函数.

我有一个RoadNetwork脚本,其中包含对RoadNodes和RoadCurves的引用,两者都通过单例定位RoadNetwork并注册/取消注册.我在RoadNode和RoadCurve中安装了"迷你工厂",他们努力将自己挂在游戏对象上.

RoadNode首先检查RoadNetwork,以确保在同一位置还没有节点,通过这样做:

public static RoadNode2 New(float x, float y, float z)
{
    //First try to find an existing one
    var rn = RoadNetwork.Instance.GetNodeAtPosition(new Vector3(x, y, z))
             ?? UnityReferenceHelper.GetNewGameObjectFor<RoadNode2>(
                 "RoadNode_" + (RoadNetwork.Instance.Nodes.Count + 1).ToString("D3"),
                 RoadNetwork.Instance.transform.FindChild("Nodes"));

    rn.Position = new Vector3(x, y, z);

    rn.gameObject.active = true;

    return rn;
}
Run Code Online (Sandbox Code Playgroud)

RoadNetwork中的适当方法是:

public RoadNode2 GetNodeAtPosition(Vector3 position)
{
    var tempList = new List<RoadNode2>();

    return tempList.Single(x => x.Position == position);
}
Run Code Online (Sandbox Code Playgroud)

tempList试图缩小问题范围,但我得到了完全相同的错误.它应该是"Nodes.Single(...",但我怀疑它很重要.如果我直接在New()方法中调用Linq查询,我会得到相同的错误.

所以是的,这个Exception会抛出并指向我的tempList.Single()行.原因是什么?

c# linq unity-game-engine

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

PHP正则表达式匹配字符串的单词列表

我有一个数组中的单词列表.我需要在字符串中查找任何这些单词的匹配项.

示例单词列表

company
executive
files
resource
Run Code Online (Sandbox Code Playgroud)

示例字符串

Executives are running the company
Run Code Online (Sandbox Code Playgroud)

这是我写的功能,但它不起作用

$matches = array();
$pattern = "/^(";
foreach( $word_list as $word )
{
    $pattern .= preg_quote( $word ) . '|';
}

$pattern = substr( $pattern, 0, -1 ); // removes last |
$pattern .= ")/";

$num_found = preg_match_all( $pattern, $string, $matches );

echo $num_found;
Run Code Online (Sandbox Code Playgroud)

产量

0
Run Code Online (Sandbox Code Playgroud)

php regex

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

PHP/PDO:返回没有foreach的查询行?

我对此感到困惑,我运行了一个查询,如

foreach($dbh->query("SELECT * FROM ...") as $row) { 
  ...do something with row()
Run Code Online (Sandbox Code Playgroud)

但是当我var_dump $dbh它是一个PDOstatement对象.

这引出了两个问题:

  • foreach如何以某种方式将对象解析为单独的行?
  • 如何将所有行存储在数组中,例如$ arr = $ dbh-> query(...)?这不起作用,因为它仍然是一个对象

我当然可以在foreach下运行,并且执行$ arr [] = $ row,但这看起来有点傻.

php mysql pdo

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

无法锁定组件

我有时在会话范围的组件上得到此错误,仍然没有弄清楚导致此失败的原因.有任何想法吗?

ERROR [Exceptions] handled and logged exception
javax.el.ELException: org.jboss.seam.core.LockTimeoutException: could not acquire lock on @Synchronized component: importUser
Run Code Online (Sandbox Code Playgroud)

seam

8
推荐指数
1
解决办法
1万
查看次数

LinkedList的add方法(带超类型)并不是每件事都好吗?

package pkg_2;

import java.util.*;

class shape{}

class Rect extends shape{}

class circle extends shape{}

class ShadeRect extends Rect{}

public class OnTheRun {

    public static void main(String[] args) throws Throwable {
        ShadeRect sr = new ShadeRect();
        List<? extends shape> list = new LinkedList<ShadeRect>();       
        list.add(0,sr);
    }

}
Run Code Online (Sandbox Code Playgroud)

java generics

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