2012-01-19 23 views
2

iOSのブラウザアプリで作業していて、モバイルSafariのようにロケーションバーのテキストフィールドに「Reader」ボタンを追加して、ページが記事であることが検出されたときに行います。 UITextFieldの右側にボタンを追加するにはどうすればよいですか?UITextFieldの中にボタンを追加する

+0

私は単純に全幅のUIViewを作成しています。 rightとUITextFieldを左にします。 –

答えて

0

UITextFieldの「内側」に収まるサイズで、UITextFieldと重複するように配置してください。

UITextFieldを追加した後でビューに追加する限り、そのビューの上に表示されます。

+1

テキストフィールド上のボタンを単にたたくと、入力時にボタンの下のテキストを見ることができなくなると思います。 'UIT extField'。 – kervich

0

まず、ヘッダファイルにあなたのUIButtonを実装

の.h実装ファイル(.M)

@synthesize headerButton; 

- (void)viewDidLoad 
{ 

    UITextField *urlField = [[UITextField alloc]initWithFrame:CGRectMake(10, 10, 100, 20)]; 
    //your url processing code here 
    //... 
    //... 
    //... 
    [self.view addSubview:urlField]; 
    //declare your reader button 
    readerButton = [[UIButton alloc]initWithFrame:CGRectMake(70, 10, 25, 20)]; 
    [readerButton addTarget:self action:@selector(readerButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
    readerButton.hidden = YES; 
} 

が最終的にそうウルURLの処理方法にこれを追加で、その後

@properties (nonatomic, strong) UIButton *headerButton; 

リーダーボタンは、ページが読み込み可能な場合にのみ表示されます。

//add your condition 
    if(page is pdf or readable) 
    { 
     readerButton.hidden = NO; 
    } 
    else 
    { 
     readerButton.hidden = YES; 
    } 
+0

私はこれが個人的な意見であることを感謝しますが、このようなテンプレートコードを与えるのではなく、質問者が知識を習得できるように質問者を導くためのいくつかの指針として答えを出すほうが良いと感じています - そうでなければStackOverflowはコピー/コードレポジトリを使用して学習と開発を支援します。 –

+0

まあ、正直言って、私はまだ目標Cにも非常に新しいです。だから、明らかに私は、物事がどのように働くべきかについて誰かに教えることに自信がありません...だから、ほとんどの時間(私にとっては)何かを創造する新しい方法を発見するのに役立つコード –

4

UITextFieldのrightViewプロパティを使用します。基本的には、UITextField内にカスタムビュー/コントロールを配置できる2つのプロパティ(それに応じて、leftView)があります。あなたは、これらのビューがrightViewMode/leftViewModeの手段の特性によって示されているか否かを制御できます。

UIButton *myButton = [UIButton new]; 
// configure your button here 
myTextField.rightView = myButton; 
myTextField.rightViewMode = UITextFieldViewModeUnlessEditing; // check the docs for other possible values 

また、カスタムビュー/コントロールが行きますCGRectを返すrightViewRectForBounds:と呼ばれる方法があります。このメソッドが返すrectよりもはるかに大きいものを配置したい場合(UITextFieldがビューを配置するときにUITextFieldが呼び出すように見えます)、ビューこの矩形に合わせてスケーリングされます。それあなたがカテゴリあなたのUITextField +にMyButtonのために行くあなたはそれを上書きしたい場合があり、その場合(と仮定すると、お使いのカテゴリやUITextFieldのの多分サブクラスを作成するには、次のようなものになります。このことができます

@interface UITextField(MyButton) 
- (CGRect)rightViewRectForBounds:(CGRect)bounds; 
@end 

@implementation UITextField(MyButton) 

- (CGRect)rightViewRectForBounds:(CGRect)bounds 
{ 
    // return the CGRect that would fit your view/button. The buttons param that is passed here is the size of the view that is being added to the textField. 
} 

// possibly some other methods that you override 

@end 

希望をと指摘など他の答えでは、最初にドキュメントをチェックして、あなたに役立つ方法を確認してください。

関連する問題