0

ユーザーがUIButtonviewControllerに入ると灰色になります。もありUITextViewます。ユーザーが にテキストを入力するとUITextView、ボタンは赤くなりますが、テキスト ビューが空白の場合、ボタンは灰色になります。ユーザーがテキストを入力すると色が赤に変わりますが、ユーザーがテキストを削除すると、灰色に戻る代わりに赤のままになります。私が使用しているコードは次のとおりです。

- (void)textViewDidChange:(UITextView *)textView {

if (self.textView.text.length == 0) {
    self.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:193/255.5 green:193/255.0 blue:193/255.0 alpha:1.0];
}else{

    self.navigationItem.rightBarButtonItem.tintColor = [UIColor redColor];
}

if (self.titleView.text.length == 0) {
    self.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:193/255.5 green:193/255.0 blue:193/255.0 alpha:1.0];
}else{

    self.navigationItem.rightBarButtonItem.tintColor = [UIColor redColor];
}

NSLog(@"Typing has stopped");

}
4

3 に答える 3

4

if (self.textView.text.length == 0)テキストが null かどうかをチェックする代わりに使用します。

于 2014-02-02T17:55:46.273 に答える
1

スウィフト 3 の場合:

if (self.textView.text.characters.count == 0)

于 2016-12-18T07:42:17.930 に答える
-1

ボタンの画像をテキスト ビューの値にバインドし、値トランスフォーマーを使用して、入力があるかどうかに応じて異なる色の画像を配置できます。

コードは OSX 用ですが、適応できることを願っています。

@implementation DBHasTextImageTransformer

- (id)init
{
  self = [super init];
  if (self) {
    // Initialization code here.
  }

  return self;
}


+ (Class)transformedValueClass
{
  return [NSImage class];
}


+ (BOOL)allowsReverseTransformation
{
  return NO;
}


- (id)transformedValue:(id)value
{

  if ((value == NULL) || [value isEqualToString:@""]) {

    return [NSImage imageNamed: @"NoTextImage"];

  } else {

    return [NSImage imageNamed: @"HasTextImage"];

  }

}


@end
于 2014-02-02T18:14:43.417 に答える