第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何瀏覽文本字段(Next/Done按鈕)

如何瀏覽文本字段(Next/Done按鈕)

翻閱古今 2019-07-13 16:35:37
如何使用iPhone鍵盤(pán)上的“下一步”按鈕瀏覽所有文本字段?最后一個(gè)文本字段應(yīng)該關(guān)閉鍵盤(pán)。我已經(jīng)設(shè)置了IB按鈕(下一個(gè)/完成),但現(xiàn)在我被卡住了。我實(shí)現(xiàn)了textFieldShouldRe轉(zhuǎn)折點(diǎn)操作,但是現(xiàn)在下一個(gè)按鈕關(guān)閉鍵盤(pán)。
查看完整描述

3 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

在Cocoa for MacOSX中,您有下一個(gè)響應(yīng)鏈,您可以在其中詢(xún)問(wèn)文本字段接下來(lái)應(yīng)該關(guān)注什么控件。這就是使文本字段之間的選項(xiàng)卡工作的原因。但是由于iOS設(shè)備沒(méi)有鍵盤(pán),只有觸摸,這一概念在過(guò)渡到CocoaTouch之后并沒(méi)有存活下來(lái)。

無(wú)論如何,只要有兩個(gè)假設(shè),這是很容易做到的:

  1. 所有“可表”

    UITextField

    S在同一個(gè)父視圖上。
  2. 它們的“制表符順序”由Tag屬性定義。

假設(shè)您可以重寫(xiě)textFieldShouldRe轉(zhuǎn)折點(diǎn):如下所示:

-(BOOL)textFieldShouldReturn:(UITextField*)textField{
  NSInteger nextTag = textField.tag + 1;
  // Try to find next responder
  UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
  if (nextResponder) {
    // Found next responder, so set it.
    [nextResponder becomeFirstResponder];
  } else {
    // Not found, so remove keyboard.
    [textField resignFirstResponder];
  }
  return NO; // We do not want UITextField to insert line-breaks.}

添加更多的代碼,這些假設(shè)也可以被忽略。

SWIFT 4.0

 func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    let nextTag = textField.tag + 1
    // Try to find next responder
    let nextResponder = textField.superview?.viewWithTag(nextTag) as UIResponder!

    if nextResponder != nil {
        // Found next responder, so set it
        nextResponder?.becomeFirstResponder()
    } else {
        // Not found, so remove keyboard
        textField.resignFirstResponder()
    }

    return false}

如果文本字段的SuperView將是UITableViewCell,那么下一個(gè)響應(yīng)程序?qū)⑹?/strong>

let nextResponder = textField.superview?.superview?.superview?.viewWithTag(nextTag) as UIResponder!


查看完整回答
反對(duì) 回復(fù) 2019-07-13
?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

這是我對(duì)這個(gè)問(wèn)題的解決辦法。

為了解決這個(gè)問(wèn)題(而且我討厭依賴(lài)標(biāo)記來(lái)做事情),我決定向UITextField對(duì)象添加一個(gè)自定義屬性。換句話(huà)說(shuō),我在UITextField上創(chuàng)建了一個(gè)類(lèi)別,如下所示:

UITextField+Extended.h

@interface UITextField (Extended)@property(retain, nonatomic)UITextField* nextTextField;@end

UITextField+Extended.m

#import "UITextField+Extended.h"#import <objc/runtime.h>static char defaultHashKey;@implementation UITextField (Extended)- (UITextField*) 
nextTextField { 
    return objc_getAssociatedObject(self, &defaultHashKey); }- (void) setNextTextField:(UITextField *)nextTextField{
    objc_setAssociatedObject(self, &defaultHashKey, nextTextField, OBJC_ASSOCIATION_RETAIN_NONATOMIC); }@end

現(xiàn)在,我是如何使用它的:

UITextField *textField1 = ...init your textfieldUITextField *textField2 = ...init your textfieldUITextField *textField3 = ...
init your textfield

textField1.nextTextField = textField2;textField2.nextTextField = textField3;textField3.nextTextField = nil;

并實(shí)現(xiàn)textFieldShouldRe轉(zhuǎn)折點(diǎn)方法:

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {

    UITextField *next = theTextField.nextTextField;
    if (next) {
        [next becomeFirstResponder];
    } else {
        [theTextField resignFirstResponder];
    }

    return NO; }

我現(xiàn)在有了一個(gè)UITextField的鏈接列表,每個(gè)人都知道下一個(gè)是誰(shuí)。

希望能幫上忙。


查看完整回答
反對(duì) 回復(fù) 2019-07-13
  • 3 回答
  • 0 關(guān)注
  • 666 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)