我是iOS/Swift的新手,在设置UITextView第一响应者时(next从上一次触摸时)我有一种奇怪的行为UITextField.它会自动在中插入一个新行UITextView.代码:
class MyViewController: UIViewController, UITextFieldDelegate, UITextViewDelegate {
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var descriptionTextView: UITextView!
override func viewDidLoad() {
nameTextField.delegate = self
descriptionTextView.delegate = self
}
func textFieldShouldReturn(nameTextField: UITextField) -> Bool {
nameTextField.resignFirstResponder()
descriptionTextView.becomeFirstResponder()
return true
}
func textView(descriptionTextView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if (text == "\n") {
descriptionTextView.resignFirstResponder()
return false
}
return true
}
}
Run Code Online (Sandbox Code Playgroud)
总是添加一个新行next,即使已有文本或新行,我也会按.第一个是next这里发生的事情(光标自动在第二行).

如果我返回文本字段并再次按下,则光标位于第 …
我在空白页面上包含Platform.js(v0.3.4)(Polymer),jQuery(v2.xx)和Bootstrap.js(v3.2.0)之后发生了一个奇怪的错误.
使用Safari和Firefox,在(空)页面上的某些事件(如click或keyup)上会抛出错误:
TypeError:'undefined'不是函数(评估'elem.getAttribute(name)')
jQuery v1.11.1没有问题,我没有尝试其他版本的Platform.无论是Chrome还是Opera.
如果我在Bootstrap中用'dblclick'替换所有'click',则单击时不会再出现错误(当然,它会在dblclick上发生).
嗯,这没什么大不了的,但令人惊讶.
以下是要测试的代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PJB</title>
<script src="http://cdnjs.cloudflare.com/ajax/libs/polymer/0.3.4/platform.js"></script>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何避免这个错误而不破坏Bootstrap,jQuery of Platform,我很高兴知道.
谢谢.
我正在处理一个具有很多可编辑值(* big意味着> 1000)的大json,它完全呈现在同一页面上,所以我的状态很简单{ data: bigBigJson }。
最初的渲染时间很长,但是还可以。
问题在于,当输入触发一个onChange(和一个redux动作)时,该值会在状态中更新,并且整个渲染会再次发生。
我不知道人们如何处理?是否有简单的解决方案(甚至不一定是最佳实践)。
笔记:
json文件由外部API提供,我无法更改
我可以将状态分为几个子状态(这是多个级别的json),但希望有一个更简单/更快的解决方案(尽管我知道这可能是最佳实践)
我正在使用react和redux,不是immutable.js,但一切都是不可变的(显然)
-
更新(关于DSS答案)
•(情况1)假设状态为:
{
data: {
key1: value1,
// ...
key1000: value1000
}
}
Run Code Online (Sandbox Code Playgroud)
如果keyN更新了,所有状态都将重新渲染,对吧?减速器将返回如下内容:
{
data: {
...state.data,
keyN: newValueN
}
Run Code Online (Sandbox Code Playgroud)
那是一回事,但这不是我的情况。
•(第2种情况)状态更像(过于简化):
{
data: {
dataSet1: {
key1: value1,
// ...
key10: value1000
},
// ...
dataSet100: {
key1: value1,
// ...
key10: value1000
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果dataN.keyN已更新,我将退还给减速机
{
data: {
...state.data,
dataN: {
...state.data.dataN, …Run Code Online (Sandbox Code Playgroud) 当我在我的服务器上上传这段代码时,我有一个解析错误(php 5.5.12):
if (!empty($a = $b)) {...}
Run Code Online (Sandbox Code Playgroud)
错误是:
语法错误,意外'=',期待')'
我对MAMP(php 5.5.10)上的相同代码没有任何问题.当然,我可以使用以下代码轻松解决它:
$a = $b;
if (!empty($a)) {...}
Run Code Online (Sandbox Code Playgroud)
但是,第一个应该工作.
谢谢!
编辑:我工作.我刚刚遇到了PHP版本的问题.
ios ×1
javascript ×1
jquery ×1
performance ×1
php ×1
platform ×1
polymer ×1
reactjs ×1
redux ×1
swift ×1