1

在 Appcelerator 中,每当我有一个 TextField 时,边框总是一个厚橙色。我该如何设计这个?backgroundSelectedColor 似乎没有效果,而 backgroundColor 改变了实际的背景颜色。我希望背景颜色保持不变,但边框颜色会改变。这怎么可能?是吗?谁想要厚厚的橙色边框?!?怎么是默认的?

4

1 回答 1

1

backgroundFocusedImage我试图通过使用and属性来实现与您在下面看到的相同的效果,但backgroundImage没有运气。

在此处输入图像描述 在此处输入图像描述

最后,我最终实现了 eventListeners 手动交换这些属性(注意:我使用的是 Alloy,所以如果您只使用 Titanium,您的代码可能看起来略有不同):

function toggleFocusBackground(event) {

  function swap(obj, prop1, prop2) {
    var tmp;
    tmp = obj[prop1];
    obj[prop1] = obj[prop2];
    obj[prop2] = tmp;
  }

  function multiSwap(obj, props) {
    var prop1, prop2;
    for (prop1 in props) {
      prop2 = props[prop1];
      if (typeof obj[prop1] !== 'undefined' && typeof obj[prop2] !== 'undefined') {
        swap(obj, prop1, prop2);
      }
    }
  }

  var node, i;
  var props = {
    'backgroundFocusedImage': 'backgroundImage',
    'focusedColor': 'color'
  };

  for (i in this.parent.children) {
    multiSwap( this.parent.children[i], props );
  }
}

for (var i in $) {
  if (typeof $[i].value !== 'undefined') {
    $[i].addEventListener('focus', toggleFocusBackground);
    $[i].addEventListener('blur', toggleFocusBackground);
  }
}
于 2013-11-11T23:53:38.523 回答