Ionic-framework: issue(forms): ์–‘์‹์— ๋Œ€ํ•œ ์ž…๋ ฅ, ์Šคํฌ๋กค, ํ‚ค๋ณด๋“œ ๋ฌธ์ œ

์— ๋งŒ๋“  2016๋…„ 04์›” 19์ผ  ยท  109์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ionic-team/ionic-framework

์ง€๊ธˆ์€ Ionic์ด ์–‘์‹ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ๋” ๋‚˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Ionic 1์€ ํ‚ค๋ณด๋“œ ์ฒ˜๋ฆฌ, ์ฝ˜ํ…์ธ  ์Šคํฌ๋กค ๋“ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์–‘์‹ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๋ฉ‹์ง„ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Ionic 2๋Š” ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฉฐ ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ชจ๋“  ํ”Œ๋žซํผ(iOS, Android, Windows)์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์–‘์‹ ์ž…๋ ฅ์— ๋Œ€ํ•ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์žฅ์น˜์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ ์˜ˆ์ œ๋Š” ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐ ํ•˜์„ธ์š” .

๊ธฐ๊ณ„์  ์ธ์กฐ ์ธ๊ฐ„:

  • [x] 1. ์ž…๋ ฅ์„ ์„ ํƒํ•  ๋•Œ ํ‚ค๋ณด๋“œ๊ฐ€ ํ‘œ์‹œ๋œ ํ›„ ์„ ํƒํ•œ ํ•ญ๋ชฉ์ด ๋ณด์ด๋„๋ก ์ „์ฒด ์–‘์‹ ๋‚ด์šฉ์„ ์Šคํฌ๋กคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • [x] 2. ํ‚ค๋ณด๋“œ๊ฐ€ ์ˆจ๊ฒจ์ ธ ์žˆ์„ ๋•Œ ์Šคํฌ๋กค์„ ์›๋ž˜ ์œ„์น˜๋กœ ๋˜๋Œ๋ฆฌ๊ณ  ์ถ”๊ฐ€๋œ ํŒจ๋”ฉ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • [x] 3. ์ž…๋ ฅ์ด ์•„๋‹Œ ์˜์—ญ์„ ํ„ฐ์น˜ํ•˜๋ฉด ํ‚ค๋ณด๋“œ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
  • [ ] 4. ์‚ฌ์šฉ์ž๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์ž…๋ ฅ์„ ์ฑ„์šด ํ›„ ๋‘ ๋ฒˆ์งธ ์ž…๋ ฅ์„ ์„ ํƒํ•˜๋ฉด ํ™”๋ฉด์„ ์Šคํฌ๋กคํ•˜์—ฌ ์ƒˆ๋กœ ์„ ํƒํ•œ ์ž…๋ ฅ ํ•„๋“œ์— ์ดˆ์ ์„ ๋งž์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • [x] 5. ์ผ๋ถ€ ํ‚ค๋ณด๋“œ์—๋Š” ๋‹ค์Œ, ์ด์ „ ๋ฐ ์™„๋ฃŒ ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • [x] 6. ์ž๋™ ์ˆ˜์ •, ์ž๋™ ์™„์„ฑ ๋ฐ ์ž๋™ ๋Œ€๋ฌธ์ž ๋ฐ ์ด๋“ค์˜ ์กฐํ•ฉ์— ๋Œ€ํ•œ ์ง€์›.

    iOS:

  • [x] 1. ์ž…๋ ฅ์„ ์„ ํƒํ•  ๋•Œ ํ‚ค๋ณด๋“œ๊ฐ€ ํ‘œ์‹œ๋œ ํ›„ ์„ ํƒํ•œ ํ•ญ๋ชฉ์ด ๋ณด์ด๋„๋ก ์ „์ฒด ์–‘์‹ ๋‚ด์šฉ์„ ์Šคํฌ๋กคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • [x] 2. ํ‚ค๋ณด๋“œ๊ฐ€ ์ˆจ๊ฒจ์ ธ ์žˆ์„ ๋•Œ ์Šคํฌ๋กค์„ ์›๋ž˜ ์œ„์น˜๋กœ ๋˜๋Œ๋ฆฌ๊ณ  ์ถ”๊ฐ€๋œ ํŒจ๋”ฉ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • [x] 3. ์ž…๋ ฅ์ด ์•„๋‹Œ ์˜์—ญ์„ ํ„ฐ์น˜ํ•˜๋ฉด ํ‚ค๋ณด๋“œ๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
  • [x] 4. ์‚ฌ์šฉ์ž๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์ž…๋ ฅ์„ ์ฑ„์šด ํ›„ ๋‘ ๋ฒˆ์งธ ์ž…๋ ฅ์„ ์„ ํƒํ•˜๋ฉด ํ™”๋ฉด์„ ์Šคํฌ๋กคํ•˜์—ฌ ์ƒˆ๋กœ ์„ ํƒํ•œ ์ž…๋ ฅ ํ•„๋“œ์— ์ดˆ์ ์„ ๋งž์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • [ ] 5. ์ผ๋ถ€ ํ‚ค๋ณด๋“œ์—๋Š” ๋‹ค์Œ, ์ด์ „ ๋ฐ ์™„๋ฃŒ ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ ์˜ต์…˜์„ ์ˆœํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํŽ˜์ด์ง€์˜ ์–‘์‹ ์ž…๋ ฅ์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • [x] 6. ์ž๋™ ์ˆ˜์ •, ์ž๋™ ์™„์„ฑ ๋ฐ ์ž๋™ ๋Œ€๋ฌธ์ž ๋ฐ ์ด๋“ค์˜ ์กฐํ•ฉ์— ๋Œ€ํ•œ ์ง€์›.

_์ด ๋ฌธ์ œ๋Š” ์Šฌ๋ผ์ด๋“œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์–‘์‹ ๋˜๋Š” ์ž…๋ ฅ๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ˆ˜ํ–‰ํ•  ๋ณ„๋„์˜ ์ผ๊ด€์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค._

์–ด๋–ค ์ด์˜จ ๋ฒ„์ „? 2.x

ํ„ฐ๋ฏธ๋„/cmd ํ”„๋กฌํ”„ํŠธ์—์„œ ionic info ์‹คํ–‰: (์•„๋ž˜์— ์ถœ๋ ฅ ๋ถ™์—ฌ๋„ฃ๊ธฐ)
์ฝ”๋ฅด๋„๋ฐ” CLI: 6.1.1
Ionic Framework ๋ฒ„์ „: 2.0.0-beta.4-201604170622
Ionic CLI ๋ฒ„์ „: 2.0.0-beta.24
Ionic ์•ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „: 2.0.0-beta.14
์šด์˜ ์ฒด์ œ:
๋…ธ๋“œ ๋ฒ„์ „: v5.7.0

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์นœ์• ํ•˜๋Š” ionic ํŒ€ ( @manucorporat , @brandyscarney , @adamdbradley )
๋‹ค์Œ ๋ฒ„์ „์—์„œ ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ํ‚ค๋ณด๋“œ ๋ฌธ์ œ๋Š” ์•ฑ ๊ฒฝํ—˜์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ์Šคํฌ๋กค๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์˜ค๋žœ ๋ฌธ์ œ์™€ ํ•จ๊ป˜ ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.
๊ฑฐ๋Œ€ํ•œ ์•ฑ ํฌ๊ธฐ์™€ ๋Š๋ฆฐ ์‹œ์ž‘์€ ์งœ์ฆ๋‚˜์ง€๋งŒ ์•ฑ์ด ์„ค์น˜๋˜๊ณ  ์‹คํ–‰๋  ๋•Œ ํ‚ค๋ณด๋“œ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  109 ๋Œ“๊ธ€

@dylanvdmerwe ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ํ•จ๊ป˜ ๋งŒ๋“ค์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‹ค์Œ ๋ฐ ์ด์ „ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ์„ ์œ„์•„๋ž˜๋กœ ํƒญํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ด๊ฒƒ์€ ์ž‘๋™ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ตœ๊ทผ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ž๋™ ์™„์„ฑ ๋ฐ ์ž๋™ ์ˆ˜์ •์„ ์œ„ํ•ด ์ด๋™ํ•˜๋ฉฐ ์š”์†Œ์— ํŠน๋ณ„ํžˆ ์ถ”๊ฐ€๋˜์ง€ ์•Š๋Š” ํ•œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. https://github.com/driftyco/ionic/blob/2.0/ionic/components/input/input-base.ts #L217

์ž๋™ ๋Œ€๋ฌธ์ž ์‚ฌ์šฉ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

@adamdbradley

  • iOS์—์„œ ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ์‚ฌ์ด๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋ณด๋“œ ๋ฒ„ํŠผ์„ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ "ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ"ํ•˜๊ณ  ํ‚ค๋ณด๋“œ๋Š” ๊ฒฐ๊ตญ ๋‹ซํž™๋‹ˆ๋‹ค. ์ด ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๋‹ค๋ฅธ ํ‚ค๋ณด๋“œ๋กœ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์—ฌ์ „ํžˆ Android์—์„œ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž๋™ ์™„์„ฑ ๋ฐ ์ž๋™ ์ˆ˜์ •์˜ ๊ธฐ๋ณธ๊ฐ’์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. iOS์—์„œ๋Š” ํŠน์ • ํ‚ค๋ณด๋“œ ์œ ํ˜•์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€๋งŒ ํ‘œ์ค€ <input> ๊ทœ์น™์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๋‚˜์ค‘์— ์ž๋™ ์™„์„ฑ ๋ฐ ์ž๋™ ๋Œ€๋ฌธ์ž ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ˆœ์—ด์„ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ  ํ‚ค๋ณด๋“œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์—ฌ๊ธฐ์— ๋ณ„๋„๋กœ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์žฅ์น˜์—์„œ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@adamdbradley ์œ„์˜ ํ•ญ๋ชฉ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ˆˆ์— ๋„๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

Android ๋ฌธ์ œ #1์—์„œ ์šฐ๋ฆฌ๋Š” ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ ์—†์ด๋Š” ๋‚ด ์•ฑ์„ ์™„์ „ํžˆ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Android ๋ฌธ์ œ #1์— ๋Œ€ํ•œ +1 :)

์ด ํ˜ธ์— ๋‚˜์—ด๋œ ํ•ญ๋ชฉ์— ์–ด๋–ค ์›€์ง์ž„์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@dylanvdmerwe ๋‹ค์Œ ๋ฒ ํƒ€๊ฐ€ ๋ฆด๋ฆฌ์Šค(beta8)๋˜๋ฉด ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถˆํŽธ์„ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค

Android ๋ฌธ์ œ #1์— ๋Œ€ํ•œ +1 :)

Android ๋ฌธ์ œ์— ๋Œ€ํ•œ +1:

. ์ž…๋ ฅ์„ ์„ ํƒํ•  ๋•Œ ์ „์ฒด ์–‘์‹ ๋‚ด์šฉ์„ ์Šคํฌ๋กคํ•ด์•ผ ํ‚ค๋ณด๋“œ๊ฐ€ ํ‘œ์‹œ๋œ ํ›„ ์„ ํƒํ•œ ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ionic1 ์—์„œ ionic 2 ๋กœ ์™„์ „ํžˆ ์ด์‹ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋‘ ์ œ์ผ ์ข‹๋‹ค!

์ด๊ฒƒ์€ ionic1 ์—์„œ ionic 2 ๋กœ ์™„์ „ํžˆ ์ด์‹ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

Android ๋ฌธ์ œ #1์— ๋Œ€ํ•œ +1
์ด ๋ฌธ์ œ๋ฅผ ์กฐ์†ํžˆ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”! ์šฐ๋ฆฌ๋Š” ์ด์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ์•ฑ์„ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์ด ๋ฒ„๊ทธ๊ฐ€ ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ๋˜์–ด ionic 1์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

@adamdbradley , @jgw96 ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์—…๋ฐ์ดํŠธ๋ฅผ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•„ ๋ฐ๋ชจํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค...
๊ฐ์‚ฌ ํ•ด์š”!

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋„ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ion-input ์š”์†Œ๋Š” ์ดˆ์ ์„ ๋งž์ถœ ๋•Œ ์Šคํฌ๋กค๋˜์–ด ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ •์ƒ์ ์ธ input ์š”์†Œ๋กœ ์ „ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

๋ชจ๋‘๋“ค ์•ˆ๋…•! ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ios๋‚˜ android์—์„œ ์ฃผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ์•„๋‹ˆ๋ฉด ๋‘˜ ๋‹ค์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๋ฐœ์ƒํ•˜๋ฉฐ ios๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ž…๋ ฅ์„ ์‹œ์ž‘ํ•˜๋ฉด UI๊ฐ€ ์œ„๋กœ ์Šคํฌ๋กค๋˜์–ด ์ž…๋ ฅ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์ดˆ์ ์ด ๋งž์ถฐ์ง€๊ณ  ํ‚ค๋ณด๋“œ๊ฐ€ ํŒ์—…๋˜๋Š” ์ฆ‰์‹œ ๋ฐœ์ƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๊ธฐ๊ธฐ์˜ iOS์—์„œ ๋ช‡ ๊ฐ€์ง€ ๋” ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค(Android์—์„œ๋Š” ํ™•์ธํ•˜์ง€ ์•Š์Œ).

  • ๋ถ€๋™ ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž…๋ ฅ์„ ํด๋ฆญํ•  ๋•Œ ๊ฐ’ ์•ž์— ์ผ์‹œ์ ์œผ๋กœ ๋นˆ ์ค„์ด ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๊ฐ’์ด ์•„๋ž˜๋กœ ์ด๋™ํ•˜๊ณ  ์ž…๋ ฅ์ด ์„ธ๋กœ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ’์ด ์ผ์‹œ์ ์œผ๋กœ ์ˆ˜ํ‰์œผ๋กœ ์˜ฎ๊ฒจ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถ€๋™ ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํฌ๋กคํ•  ๋•Œ ์บ๋Ÿฟ์ด ์ž…๋ ฅ ๋ฐ–์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝ”๋ฅด๋„๋ฐ” ํ‚ค๋ณด๋“œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์•ก์„ธ์„œ๋ฆฌ ๋ง‰๋Œ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„๋“œ ์‚ฌ์ด๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ ์ „์ฒด ๋ณด๊ธฐ๊ฐ€ ๋•Œ๋•Œ๋กœ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค. disableScroll(true)์„ ์„ค์ •ํ•œ ํ›„ ๋‹ค์Œ ๋ฒ„ํŠผ์€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ๋’ค๋กœ ๋ฒ„ํŠผ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํ™”๋ฉด์„ ์ ํ”„ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹  ์—ฌ๊ธฐ์— ๋ณด๊ณ ํ•ด์•ผ ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

Ionic์—์„œ ์ข‹์€ ์ž‘์—…์„ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค!

Android์˜ ํ‚ค๋ณด๋“œ ๋ฐ ์ด์˜จ ์ž…๋ ฅ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์–‘์‹์ด ์žˆ๋Š” ๋ชจ๋“  ์•ฑ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค!

์ด ์ค‘์š”ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ž์œผ๋กœ์˜ RC์—์„œ ์ด ๋ถ€๋ถ„์„ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ. iOS์šฉ #5 ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๊ธˆ #1์„๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? .

iOS #1์€ ํฐ ํ™”๋ฉด(iPad)์—์„œ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ์€ ๋งจ ์œ„๋กœ ์Šคํฌ๋กค๋˜์ง€๋งŒ ํ‚ค๋ณด๋“œ์— ๋” ๊ฐ€๊นŒ์ด ์žˆ์œผ๋ฉด ๊น”๋”ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

์šฐ๋ฆฌ ์ธก์˜ ์—ฌ๋Ÿฌ ์žฅ์น˜์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.

๊ธฐ๊ณ„์  ์ธ์กฐ ์ธ๊ฐ„:

  • scrollAssist๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค.
  • ํ‚ค๋ณด๋“œ๊ฐ€ ์ด๋ฏธ ์—ด๋ ค ์žˆ์„ ๋•Œ ํ•˜๋‚˜์˜ ์ด์˜จ ์ž…๋ ฅ์—์„œ ๋‹ค๋ฅธ ์ด์˜จ ์ž…๋ ฅ์œผ๋กœ ์ „ํ™˜ํ•  ๋•Œ ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(ํŽ˜์ด์ง€๊ฐ€ ๋งŽ์ด ์Šคํฌ๋กค๋จ).

iOS:

  • ์ฒ˜์Œ์—๋Š” ํŽ˜์ด์ง€๊ฐ€ ์Šคํฌ๋กค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • ๋‘ ๋ฒˆ์งธ๋กœ ํŽ˜์ด์ง€ ์ž…๋ ฅ ์‹œ ํŽ˜์ด์ง€๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ์œ„๋กœ ์Šคํฌ๋กค๋ฉ๋‹ˆ๋‹ค.
  • Android์™€ ๋™์ผํ•˜๊ฒŒ ํ•„๋“œ ๊ฐ„ ์ „ํ™˜ ์‹œ ํŽ˜์ด์ง€ ์Šคํฌ๋กค์ด ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ฒ€์ƒ‰ ํ›„ scroolView.scrollTo๊ฐ€ scrollTop HTML ์†์„ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
์ด ์†์„ฑ์€ ์ด๋ก ์ ์ธ ๊ฐ’์ธ scrollHeight - clientHeight์— ์˜ํ•ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

scroll-view.js(node_modules/ionic-angular/util/)์— ๋‹ค์Œ ์ค„์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
console.log(fromY + ' =>' + y);
console.log('์ตœ๋Œ€ ์ด๋ก ๊ฐ’: ' + (this._el.scrollHeight - this._el.clientHeight));
๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ๋Š” ๋ถ„๋ช…ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ด์œ ๋กœ Android์—์„œ ํ•„๋“œ์— ์ดˆ์ ์„ ๋งž์ถ”๋ฉด ์œ„๋กœ ์Šคํฌ๋กคํ•˜๊ธฐ ์ „์— ํ‚ค๋ณด๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ์ตœ๋Œ€ ์ด๋ก ๊ฐ’์ด ์œ„๋กœ ์Šคํฌ๋กคํ•˜๋ ค๋Š” ๊ฐ’๋ณด๋‹ค ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. iOS์—์„œ๋Š” ์ฒ˜์Œ์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ๋Œ€ ์Šคํฌ๋กค ์—… ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

๋„ค ์ฐจ๋ก€ ์•ผ ;)

@EDumdum ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณต์ œํ•ฉ๋‹ˆ๊นŒ? ์ž…๋ ฅ์— ํฌ์ปค์Šค๊ฐ€ ์žˆ๊ณ  ํ‚ค๋ณด๋“œ๊ฐ€ ์ด๋ฏธ ์ผœ์ ธ ์žˆ๊ณ  ๋‹ค์Œ ์ž…๋ ฅ์œผ๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋‹ค์Œ ์ž…๋ ฅ์ด ํ—ค๋” ์•„๋ž˜๋กœ ์Šคํฌ๋กค๋ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์„ ์œ„ํ•ด ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

ํ‚ค๋ณด๋“œ๊ฐ€ ์ด๋ฏธ ์—ด๋ ค ์žˆ์„ ๋•Œ ํ•˜๋‚˜์˜ ์ด์˜จ ์ž…๋ ฅ์—์„œ ๋‹ค๋ฅธ ์ด์˜จ ์ž…๋ ฅ์œผ๋กœ ์ „ํ™˜ํ•  ๋•Œ ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(ํŽ˜์ด์ง€๊ฐ€ ๋งŽ์ด ์Šคํฌ๋กค๋จ).

์•ˆ๋…•ํ•˜์„ธ์š” @adamdbradley

์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท์€ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ด์ง€๋งŒ ์žฅ์น˜์—์„œ ๋™์ผํ•œ ๋™์ž‘์„ ์žฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์–‘์‹์€ ์ƒ‰์ƒ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค(ํŒŒ๋ž€์ƒ‰ = ์ดˆ์ ์ด ๋งž์ถฐ์ง„ ํ•„๋“œ, ๋นจ๊ฐ„์ƒ‰ = ๊ธฐํƒ€ ํ•„๋“œ).

์žฌํ˜„ ๋‹จ๊ณ„

์˜ˆ์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๋‹จ๊ณ„

  • ์ƒˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ(ionic start -v2 myApp) => RC2
  • ๋‚ด ์•ฑ ์ƒ์„ฑ์ž์— scrollAssist๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    constructor(config: Config, platform: Platform) { config.set('scrollAssist', true); ... }
  • ๋‚ด home.html ๋ฐ home.ts ์ˆ˜์ • ๋ฐ .scss์— ์•ฝ๊ฐ„ ์ถ”๊ฐ€

<ion-header> <ion-navbar> <ion-title>Home</ion-title> </ion-navbar> </ion-header> <ion-content padding> <div class='takePlace'>Bla bla</div> <form novalidate [formGroup]="form"> <ion-item> <ion-input type="tel" pattern="[0-9]{3}" formControlName="dummyField"></ion-input> </ion-item> <ion-item> <ion-input formControlName="dummyField2"></ion-input> </ion-item> </form> </ion-content>

import { Component } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; @Component({ selector: 'page-home', templateUrl: 'home.html' }) export class HomePage { public form: FormGroup; constructor(private formBuilder: FormBuilder) { this.form = this.formBuilder.group({ dummyField: ['', [Validators.required, Validators.pattern('[0-9]{3}')]], dummyField2: ['', [Validators.required, Validators.pattern('[0-9]{3}')]] }); } ngOnInit() { } }

.takePlace { height: 300px; border: 1px solid red; }

nightly build๋Š” ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ด๋™ํ•˜์ง€๋งŒ ๋’ค๋กœ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  ํ‚ค๋ณด๋“œ๊ฐ€ ์•„๋ž˜๋กœ ๋ฏธ๋„๋Ÿฌ์งˆ ๋•Œ ์ผ๋ถ€ ์œ„์น˜์—์„œ๋Š” ์ž…๋ ฅ์ด ์›๋ž˜ ์œ„์น˜์— ์žˆ์–ด์•ผ ํ–ˆ๋˜ ์œ„์น˜(์œ„๋กœ ์Šฌ๋ผ์ด๋“œ)๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋‘˜์งธ, ์—๋ฎฌ๋ ˆ์ดํ„ฐ์— ์ž…๋ ฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด ํ‚ค๋ณด๋“œ์— ์ž…๋ ฅํ•ด์•ผ ํ•˜๊ณ  emu๊ฐ€ ์ด๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@kodeine
image

ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ด ๋ชจ๋“  ๋ฉ”๋ชจ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ๊ทธ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‚˜๋Š” ๊ณง ๋ฐค๋งˆ๋‹ค ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@adamdbradley
๋˜ ๋‹ค๋ฅธ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์ž…๋ ฅ์ด ์žˆ๊ณ  ํ‚ค๋ณด๋“œ๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ํŽ˜์ด์ง€์— ์žˆ์—ˆ๊ณ  ๋’ค๋กœ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  ํƒญ์ด ํ‚ค๋ณด๋“œ ์ƒ๋‹จ์—๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ‚ค๋ณด๋“œ ๋’ค์— ํƒญ์„ ์œ ์ง€ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ผ๊ฐ„์— ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

ํ•˜์ง€๋งŒ ์ตœ๊ทผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ๋„์ž…๋œ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ A์— ํฌ์ปค์Šค๊ฐ€ ์žˆ๊ณ  ์ž…๋ ฅ B๋ฅผ ํƒญํ•˜๋ฉด ํ‚ค๋ณด๋“œ๊ฐ€ ์ˆจ๊ฒจ์ง€๊ณ  ์–ด๋–ค ์ž…๋ ฅ์—๋„ ํฌ์ปค์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ž…๋ ฅ์— ์ดˆ์ ์„ ๋งž์ถœ ๋•Œ ์˜ˆ๋ฅผ ๋“ค์–ด Safari์—์„œ ์ž…๋ ฅ์— ์ดˆ์ ์„ ๋งž์ถœ ๋•Œ์™€ ๊ฐ™์€ ๋ถ€๋“œ๋Ÿฌ์šด ์Šคํฌ๋กค ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋Œ€์‹  ํ•ด๋‹น ์œ„์น˜๋กœ "์ ํ”„"ํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘: ์ด๊ฒƒ์€ WKWebView๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. UIWebView๋ฅผ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ž…๋ ฅ์„ ์œ„ํ•œ "๋‹ค์Œ" ๋ฒ„ํŠผ์ด ์ง€์›๋˜๋Š”์ง€ ์—ฌ๋ถ€์— ์ •๋ง ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž(์•ˆ๋“œ๋กœ์ด๋“œ, ios๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Œ)๊ฐ€ ์–‘์‹ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋Š” ๋Œ€์‹  ๋‹ค์Œ ์ž…๋ ฅ์œผ๋กœ ์ด๋™ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์ œ์ถœ/ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š๋Š” ๊ฒƒ์€ ๋‹ค์†Œ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

@biesbjerg ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์œ„์น˜๋กœ ์ ํ”„ํ•œ๋‹ค๊ณ  ๋งํ•˜๋ฉด ํ—ค๋”๊ฐ€ ์Šคํฌ๋กค๋˜์–ด ์‚ฌ๋ผ์ง€๋‚˜์š”? ์–ด๋–ค ์œ ํ˜•์˜ ์ž…๋ ฅ์ž…๋‹ˆ๊นŒ? ์ž…๋ ฅ์ด ์•ฑ ์ƒ๋‹จ์— ์žˆ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ํ•˜๋‹จ์— ๊ฐ€๊น์Šต๋‹ˆ๊นŒ? ๋ฌธ์ œ์˜ ๋น„๋””์˜ค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”

@adamdbradley ์ด ๋น„๋””์˜ค๋Š” "๋ถ€๋“œ๋Ÿฌ์šด ์Šคํฌ๋กค ๋Œ€์‹  ์œ„์น˜๋กœ ์ด๋™"์„ ๋ณด์—ฌ์ฃผ๊ณ  ์ž…๋ ฅ์— ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ๋’ค๋กœ ํ•˜๋“œ์›จ์–ด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ฝ˜ํ…์ธ ๋ฅผ ๋’ค๋กœ ์Šคํฌ๋กคํ•˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ๋„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
ํŽธ์ง‘: gif ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ezgif com-cb02e8c895

@adamdbradley ํƒญ๋œ ์ž…๋ ฅ์— ์ดˆ์ ์„ ๋งž์ถ”์ง€ ์•Š๊ณ  ํ‚ค๋ณด๋“œ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ์ž…๋ ฅ ์ดˆ์  ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

focus-keyboard

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ Android์— ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ ๋‚ด ์–‘์‹์ด ๊ฐ‘์ž๊ธฐ ์ ํ”„ํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ํฌ์ปค์Šค๊ฐ€ ์žˆ๋Š” ์ž…๋ ฅ์ด ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

keyboard-jump

์•ˆ๋…•ํ•˜์„ธ์š” @biesbjerg ์ž…๋‹ˆ๋‹ค ! ์ž…๋ ฅ ์Šคํฌ๋กค๋ง์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ๋˜ ๋‹ค๋ฅธ ์•ผ๊ฐ„ ํ”„๋กœ๊ทธ๋žจ์„ ์ตœ๊ทผ์— ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด ๋ณด์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ ํ•ด์š”!

@jgw96 ์•ˆ๋…•ํ•˜์„ธ์š”! 2.0.0-rc.3-201611302233์„ ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ gif ๋…น์Œ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์œ ํšจํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

@biesbjerg ๋ฅผ ํ…Œ์ŠคํŠธ

@jgw96 ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค! https://github.com/biesbjerg/6228-ionic-keyboard-issues

๋‹จ๊ณ„:

  1. git clone https://github.com/biesbjerg/6228-ionic-keyboard-issues.git
  2. cd 6228-ionic-keyboard-issues
  3. npm install
  4. mkdir www ( www ๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋ฅด๋„๋ฐ”/์ด์˜ค๋‹‰ ๋ฒ„๊ทธ ๋•Œ๋ฌธ์— ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜๊ฐ€ ์‹คํŒจํ•จ)
  5. ionic state reset
  6. ๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰

iOS ๋น„๋””์˜ค์— ํ‘œ์‹œ๋œ ๋ฌธ์ œ๋Š” UIWebView์™€ WKWebView์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

Android ๋ฌธ์ œ๋Š” ๋‚ด ์ฝ˜ํ…์ธ ๊ฐ€ flexbox๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ๋กœ๋กœ ๊ฐ€์šด๋ฐ์— ๋ฐฐ์น˜๋˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @biesbjerg ์ž…๋‹ˆ๋‹ค ! ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์˜ค๋Š˜ ์Šคํฌ๋กค์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํ›„ ๋ฐœ๊ฒฌํ•œ ๋‚ด์šฉ์œผ๋กœ ์ด ๊ฒŒ์‹œ๋ฌผ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @jgw96์ž…๋‹ˆ๋‹ค! ๋ฉ‹์žˆ๋Š”! :-)

Touching an area that is not an input dismisses the keyboard.

์ด ๋ถ€๋ถ„(์Œ, ๋‹ค๋ฅธ ๋ถ€๋ถ„) ์˜†์— ์ฒดํฌ ํ‘œ์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ํ‚ค๋ณด๋“œ ์ƒ๋‹จ์˜ <ion-footer> ์— ๋ณด๋‚ด๊ธฐ ๋ฒ„ํŠผ์ด ์žˆ๋Š” ์ฑ„ํŒ… ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ณด๋‚ด๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ํ›„ ํ‚ค๋ณด๋“œ๊ฐ€ ํ•ญ์ƒ ๋‹ซํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„. ๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ด€์ฐฐํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ์ด ์„ ํƒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

1jpg

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ์„ ํƒํ•  ๋•Œ, ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

2

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜๋Š” !important๋กœ ๊ทธ ๋‚˜์œ ๋‹จ๊ณ„๋ฅผ ๋ฐŸ์•˜์Šต๋‹ˆ๋‹ค.

3

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž„์‹œ ์†”๋ฃจ์…˜์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ.. position:relative ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ์„ ๋•Œ ์ƒํ™ฉ์ด ์ •๋ง ์—‰๋ง์ด ๋ฉ๋‹ˆ๋‹ค

์ด ์˜ˆ์—์„œ ๋กœ๊ณ ๋Š” ์ƒ๋Œ€ ์œ„์น˜์˜ ์š”์†Œ์ด๋ฉฐ ์ฒซ ๋ฒˆ์งธ ์ž…๋ ฅ์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.
outro

๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๋ฒˆ์งธ ์ž…๋ ฅ์„ ๋ˆ„๋ฅด๋ฉด ๋กœ๊ณ ๋„ ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค.
photo569187513406696003

@jgw96 ์ด ๋ฌธ์ œ์™€

์ € ์—ญ์‹œ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ณ ๊ฐ์€ ๋งŽ์€ ์••๋ฐ•์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™‰

์ข‹์€ ์†Œ์‹์€ ์ž…๋ ฅ์ด ์ตœ์‹  nightlies์—์„œ ํ›จ์”ฌ ๋” ์ž˜ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ์›๋ž˜ ๋กœ๊ฑฐ์ธ ์ €๋ฅผ ํฌํ•จํ•˜์—ฌ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ˆ˜์ • ์‚ฌํ•ญ์— ๋งŒ์กฑํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@yannbf , ๊ณต์ •ํ•˜๊ฒŒ

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ดํ•ดํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ์ •๋ง๋กœ ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ๊ทธ๊ฒƒ์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ค. ์ €๋Š” ionic ํŒ€์ด ํ•œ ์ผ์— ๋Œ€ํ•ด ๋งค์šฐ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์–ด์จŒ๋“ , ์–ด๋–ป๊ฒŒ ๊ทธ nightly๋กœ ํ˜„์žฌ ์•ฑ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@yannbf npm install ionic-angular<strong i="6">@nightly</strong> --save
package.json์„ angular 2.2.1๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์•ผ๊ฐ„์— ํ›จ์”ฌ ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ณ ๋งˆ์›Œ ์–˜๋“ค์•„

๋ชจ๋‘๋“ค ์•ˆ๋…•! Ionic์„ ์‚ฌ์šฉํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! @biesbjerg ๋ฐ @yannbf์€ ๋„ˆํฌ๋“ค๋กœ ์—…๋ฐ์ดํŠธ ์ค„๋ž˜ RC4 ๋ฐํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค ํ…Œ์ŠคํŠธ? ํ•ด๋‹น ๋ฆด๋ฆฌ์Šค์—๋Š” ์ž…๋ ฅ ์Šคํฌ๋กค๋ง ์ˆ˜์ • ์‚ฌํ•ญ์ด ๋งŽ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

@jgw96 ๋„ค, ์ด๋ฏธ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค! ์ตœ์ข… ๋ฐœ๋งค๊ฐ€ ๊ฑฑ์ •๋œ๋‹ค ๐Ÿ˜„

@jgw96 ์—…๋ฐ์ดํŠธ ํ›„ ์ƒํ™ฉ์ด position:absolute ๋˜๋Š” position:fixed ๊ฐ€ ์žˆ๋Š” ์š”์†Œ๋Š” ์—ฌ์ „ํžˆ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด์ „์— ์ธ์‡„๋ฅผ ๋ณด๋‚ธ ๋กœ๊ณ ๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€์—์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ(๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ์ ˆ๋Œ€ ์œ„์น˜ ์ œ๊ฑฐ) ๋‹ค์Œ ํŽ˜์ด์ง€์—์„œ์™€ ๊ฐ™์ด ํŽ˜์ด์ง€ ํ•˜๋‹จ์— "๊ณ„์•ฝ ์กฐ๊ฑด"์ด ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์—ฌ์ „ํžˆ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. :

selection_002

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<div class="agreement-text">
    <p>paragraph's content..</p>
</div>

๊ทธ๋ฆฌ๊ณ  CSS:

.agreement-text {
    position: fixed;
    padding: 10px;
    margin-top: 40px;
    bottom: 0;
    text-align: center;
    left: 0;
    right: 0;
    margin: 0 auto;
    a {
      color: rgb(250, 231, 124);
    }
}

์ œ ๊ฒฝ์šฐ์—๋Š” RC5๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„์—๋„ Android์—์„œ ์ ํ”„ ์ž…๋ ฅ ๋ฌธ์ œ๊ฐ€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ๋นˆ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ  ๋ฌธ์„œ์˜ ์ด์˜จ ์ž…๋ ฅ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์•„๋ž˜ ๋™์ž‘์ธ ์ด์˜จ ํ•จ๋Ÿ‰์œผ๋กœ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

jumping input

๋ณด์‹œ๋‹ค์‹œํ”ผ ์ฒซ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ionic info ๋ช…๋ น์˜ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

์ฝ”๋ฅด๋„๋ฐ” CLI: 6.4.0
Ionic ํ”„๋ ˆ์ž„์›Œํฌ ๋ฒ„์ „: 2.0.0-rc.5
Ionic CLI ๋ฒ„์ „: 2.2.1
Ionic ์•ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „: 2.2.0
Ionic ์•ฑ ์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „: 1.0.0
ios-deploy ๋ฒ„์ „: ์„ค์น˜๋˜์ง€ ์•Š์Œ
ios-sim ๋ฒ„์ „: ์„ค์น˜๋˜์ง€ ์•Š์Œ
์šด์˜ ์ฒด์ œ: ์œˆ๋„์šฐ 10
๋…ธ๋“œ ๋ฒ„์ „: v6.9.2
Xcode ๋ฒ„์ „: ์„ค์น˜๋˜์ง€ ์•Š์Œ

@almr193 ๊ทธ ๋™์ž‘์ด ์ •ํ™•ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ๊ฐ€ ๋ชจ๋ฐ”์ผ ์žฅ์น˜์—์„œ ํ‘œ์‹œ๋  ๋•Œ ํ™”๋ฉด์ด ์Šคํฌ๋กค๋ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋กคํ•˜๋ฉด ๊ฐ•์กฐ ํ‘œ์‹œ๋œ ์ž…๋ ฅ์ด ํ•ญ์ƒ ํ‘œ์‹œ๋˜๊ณ  ํ™”๋ฉด ํ‚ค๋ณด๋“œ์— ๊ฐ€๋ ค์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@dylanvdmerwe ๋น ๋ฅธ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ œ์‹œํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์ •ํ™•ํ•ด ๋ณด์ด๋ฉฐ ํ‚ค๋ณด๋“œ๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋  ๋•Œ ํ™”๋ฉด์ด ์Šคํฌ๋กค๋œ๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ญ๋ชฉ ์žฌ์ •๋ ฌ์ด ํ™œ์„ฑํ™”๋œ ion-list ๋‚ด ion-input ๊ฐ€ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ด์ƒํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ์ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์—‡์„ ์“ฐ๊ณ  ์žˆ๋Š”์ง€ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

jumping

@almr193 ์˜ˆ, ๋ถˆํ–‰ํžˆ๋„ ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
์œ„์˜ ์ดˆ๊ธฐ ๊ฒŒ์‹œ๋ฌผ์˜ Android ํ•ญ๋ชฉ 1)๊ณผ 4)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

+1 ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ionic-native์—์„œ Keyboard์˜ ๋ชจ๋“  ๋ฐฉ๋ฒ•์€ Android์—์„œ ๋„์›€์ด๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์Šฌ๋ผ์ด๋“œ + ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋กค์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ ๋งค์šฐ ์ด์ƒํ•œ ๋™์ž‘์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ezgif com-resize

+1

์ฝ”๋ฅด๋„๋ฐ” CLI: 6.4.0
Ionic ํ”„๋ ˆ์ž„์›Œํฌ ๋ฒ„์ „: 2.0.0
Ionic CLI ๋ฒ„์ „: 2.1.18
Ionic ์•ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „: 2.1.9
Ionic ์•ฑ ์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „: 1.0.0
ios-deploy ๋ฒ„์ „: ์„ค์น˜๋˜์ง€ ์•Š์Œ
ios-sim ๋ฒ„์ „: 5.0.13
OS: macOS ์‹œ์—๋ผ
๋…ธ๋“œ ๋ฒ„์ „: v6.9.4
Xcode ๋ฒ„์ „: Xcode 8.2.1 ๋นŒ๋“œ ๋ฒ„์ „ 8C1002

+1

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ตœ์‹ ์˜ ๊ฐ€์žฅ ํฐ ์ฝ”๋ฅด๋„๋ฐ” ๋ฐ ์ด์˜จ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์ด๋‚˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

-- ์—…๋ฐ์ดํŠธ๋จ --

์ž…๋ ฅ์„ ์‹œ์ž‘ํ•˜๋ฉด ์ž…๋ ฅ์ด ๋ณด๊ธฐ๋กœ ์Šคํฌ๋กค๋˜์ง€๋งŒ ํ‚ค๋ณด๋“œ๊ฐ€ ์ฒ˜์Œ ํ‘œ์‹œ๋  ๋•Œ ์ž…๋ ฅ์€ ํ‚ค๋ณด๋“œ์— ์˜ํ•ด ๊ฐ€๋ ค์ง‘๋‹ˆ๋‹ค.

--

Your system information:

Cordova CLI: 6.5.0 
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
ios-deploy version: 1.9.1 
ios-sim version: 5.0.13 
OS: OS X El Capitan
Node Version: v6.1.0
Xcode version: Xcode 8.2.1 Build version 8C1002

์ดˆ๊ธฐํ™”๋ฉด

image1

Domain ์ž…๋ ฅ ์š”์†Œ ์„ ํƒ ํ›„ ํ™”๋ฉด

image2

์นœ์• ํ•˜๋Š” ionic ํŒ€ ( @manucorporat , @brandyscarney , @adamdbradley )
๋‹ค์Œ ๋ฒ„์ „์—์„œ ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ํ‚ค๋ณด๋“œ ๋ฌธ์ œ๋Š” ์•ฑ ๊ฒฝํ—˜์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ์Šคํฌ๋กค๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์˜ค๋žœ ๋ฌธ์ œ์™€ ํ•จ๊ป˜ ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.
๊ฑฐ๋Œ€ํ•œ ์•ฑ ํฌ๊ธฐ์™€ ๋Š๋ฆฐ ์‹œ์ž‘์€ ์งœ์ฆ๋‚˜์ง€๋งŒ ์•ฑ์ด ์„ค์น˜๋˜๊ณ  ์‹คํ–‰๋  ๋•Œ ํ‚ค๋ณด๋“œ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ์ฐจ์ž„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @mpaland ๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค. ์•ฑ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ๋ˆˆ์— ๋„๋Š” ๋ฒ„๊ทธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค(์ผ๋ถ€๋Š” 4๊ฐœ์›”์ด ์ง€๋‚ฌ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋‹ต์žฅ ์—†์ด ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค!). ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

  • #9633
  • #9518
  • #9514
  • #8607

์ด๊ฒƒ๋“ค์€ ๊ฒ‰๋ณด๊ธฐ์— ์ฉ์€ ์ฑ„๋กœ ๋‚จ๊ฒจ์ง„ ๋ฐ˜๋ฉด ํŒ€์€ ์ตœ๊ทผ ๋ถ„ํ•  ์ฐฝ๊ณผ ๊ฐ™์€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด ์—ฌ์ „ํžˆ ์–ด๋–ค ๋ช…๋ฐฑํ•œ ๋ฐฉ์‹์œผ๋กœ ์†์ƒ๋˜์–ด ์žˆ์œผ๋ฉด ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์‹ค์ œ๋กœ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์— ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ๋ฐ”๋กœ ์žก๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋…ธ๋ ฅ์„ ์‚ฌ๋ž‘ํ•˜์ง€๋งŒ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„, ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ Ionic ํŒ€์ด ๋ฌธ์ œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก _์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ_๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท๊ณผ gif๋Š” ํ›Œ๋ฅญํ•˜์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. #2์„ผํŠธ

์–‘์‹ ๋ฐ ์ž…๋ ฅ์˜ ๊ฒฝ์šฐ display: absolute ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ๋˜ํ•œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์†Œํ•œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—†์–ด ๋ณด์ด๋Š” ๋ฌธ์ œ๊ฐ€ 1๋…„ ๋™์•ˆ ์–ด๋–ป๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

์ž…๋ ฅ ํ•„๋“œ์— ํฌ์ปค์Šค๊ฐ€ ์žˆ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ํ™”๋ฉด์ด ์œ„์•„๋ž˜๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜๋ฅผ ๋„์™€์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
teste

Ionic ํ”„๋ ˆ์ž„์›Œํฌ ๋ฒ„์ „: 2.3.0
Ionic CLI ๋ฒ„์ „: 2.2.2
Ionic ์•ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „: 2.2.1
Ionic ์•ฑ ์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „: 1.1.4
iOS ๋ฐฐํฌ ๋ฒ„์ „: 1.9.1
ios-sim ๋ฒ„์ „: 5.0.4
OS: macOS ์‹œ์—๋ผ
๋…ธ๋“œ ๋ฒ„์ „: v7.2.0
Xcode ๋ฒ„์ „: Xcode 8.2.1 ๋นŒ๋“œ ๋ฒ„์ „ 8C1002

@pedrodurek ionic์˜ ์‚ฌ๋žŒ๋“ค์ด ๋ฒˆ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”Œ๋Ÿฐ์ปค๋ฅผ ์ œ๊ณตํ•˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ…์ŠคํŠธ ์ ํ”„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ˆ˜์ •์ด ์•„๋‹ˆ๋ผ ๋ณธ์งˆ์ ์œผ๋กœ ๋” ๋‚˜์€ ์ˆ˜์ •์ด ๊ตฌํ˜„๋  ๋•Œ๊นŒ์ง€ ํ•ดํ‚น์ž…๋‹ˆ๋‹ค.

๋จผ์ € ๋‹ค์Œ์ด ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

this.keyboard.disableScroll(false);
this.keyboard.hideKeyboardAccessoryBar(true);

๋‹ค์Œ์œผ๋กœ app.module.ts์—์„œ ๋‹ค์Œ์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

IonicModule.forRoot(YourApp)

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŒ๋“œ์‹ญ์‹œ์˜ค.

IonicModule.forRoot(YourApp, {
      scrollAssist: false,
      autoFocusAssist: false
    }),

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๋ชจ๋“  ์ ํ”„ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ๋•Œ ํ™”๋ฉด์—์„œ ํƒ์ƒ‰ ๋ชจ์Œ์„ ๋ฐ€์–ด๋‚ด๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์•Œ์•„์ฐจ๋ฆฐ ์œ ์ผํ•œ ๋‚˜์œ ๋ถ€์ž‘์šฉ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@Tyler-Darby ์†”๋ฃจ์…˜์„ ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ƒ์˜ ์†”๋ฃจ์…˜์€ ์•„๋‹ˆ์ง€๋งŒ ํ•ฉ๋ฆฌ์ ์ธ ์†”๋ฃจ์…˜์ด๋ฉฐ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š”์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์—ˆ๊ณ  ๊ทธ๊ฒƒ์ด ๋‚˜๋ฅผ ๋ฏธ์น˜๊ฒŒ ๋งŒ๋“ค์—ˆ์ง€ ๋งŒ ๋งˆ์นจ๋‚ด ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ๊ฐ•์ œํ•˜๊ธฐ ์œ„ํ•ด ์š”์†Œ์— transform: translate3d(0,0,0) ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ๊ฐ€ ์˜ฌ ๋•Œ ์ž…๋ ฅ ํฌ์ปค์Šค๋ฅผ ๊นจ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๋ฌธ์ œ์˜ ์›์ธ์€ ์•„๋‹ˆ์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ์ณค์Šต๋‹ˆ๋‹ค ..

๋‚˜๋Š” app.component.ts์— ๋„ฃ์—ˆ๋‹ค:

constructor(
                ...
                public config: Config,
        ) {
                // all platforms
        this.config.set( 'scrollPadding', false )
        this.config.set( 'scrollAssist', false )
        this.config.set( 'autoFocusAssist', false )
        // android
        this.config.set( 'android', 'scrollAssist', true )
        this.config.set( 'android', 'autoFocusAssist', 'delay' )
               ...

์•„๋งˆ๋„ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํžŒํŠธ๋ฅผ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ;)

๋น„๋””์˜ค ํ™•์ธ:
https://www.dropbox.com/s/6p49z0chle9g1b9/git-ios-input.mov?dl=0

ํ™˜๊ฒฝ ์ •๋ณด:
๊ธ€๋กœ๋ฒŒ ํŒจํ‚ค์ง€:

@ionic/cli-utils : 1.3.0
Cordova CLI      : 7.0.1 
Ionic CLI        : 3.3.0

๋กœ์ปฌ ํŒจํ‚ค์ง€:

@ionic/app-scripts              : 1.3.7
@ionic/cli-plugin-cordova       : 1.3.0
@ionic/cli-plugin-ionic-angular : 1.3.0
Cordova Platforms               : ios 4.4.0
Ionic Framework                 : ionic-angular 3.3.0

์ฒด๊ณ„:

Node       : v7.10.0
OS         : macOS Sierra
Xcode      : Xcode 8.3.2 Build version 8E2002 
ios-deploy : 1.9.0 
ios-sim    : 5.0.8

<input/> ๋ฅผ <ion-input></ion-input>
๊ทธ๊ฒƒ์œผ๋กœ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

์•ˆ๋…•ํ•˜์„ธ์š” @maulikakapure ์ž…๋‹ˆ๋‹ค .

ํšŒ์‚ฌ๋ฅผ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ ์ด์˜จ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ‚ค๋ณด๋“œ์— ์Šคํฌ๋กค/์ดˆ์  ๋ฌธ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๋‹น์‹ ์€ ๋น„๋””์˜ค์—์„œ ๋ณด์—ฌ์ค€ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉํ•  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•, ๊ตฌ์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ html ํƒœ๊ทธ์˜ ์˜ฌ๋ฐ”๋ฅธ ์กฐํ•ฉ์„ ์•„์ง ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”

@Tyler-Darby Hey Tyler๋‹˜, ๋‹ค์Œ ์ฝ”๋“œ๋Š” ์–ด๋””์— ๋„ฃ์–ด์•ผ ํ•˜๋‚˜์š”?

this.keyboard.disableScroll(false);
this.keyboard.hideKeyboardAccessoryBar(true);

์•ˆ๋…•ํ•˜์„ธ์š” @cwiejack

์—ฌ๊ธฐ์—์„œ ๊ฐ„๋‹จํ•œ ๋ฐ๋ชจ๋ฅผ ํ™•์ธํ•˜์„ธ์š”: https://www.dropbox.com/s/1o9hrnjgt7u3bpy/BasicDemo.zip?dl=0

๊ฐ์‚ฌ ํ•ด์š”.

Ionic์˜ ๊ธฐ๋ณธ ํ‚ค์›Œ๋“œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด app.module.ts์˜ ๊ฐ€์ ธ์˜ค๊ธฐ์— ๋‹ค์Œ์„ ์ž…๋ ฅํ•˜์„ธ์š”.

    IonicModule.forRoot(MyApp, {
      scrollAssist: false,
      autoFocusAssist: false
    })

๊ทธ๋Ÿฌ๋ฉด ํ‚ค๋ณด๋“œ ๋ฌธ์ œ๊ฐ€ ์ฆ‰์‹œ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

@aplimovil ์ด๊ฒƒ์€ ๋‚ด ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค! ๋‹น์‹ ์—๊ฒŒ ๋งŽ์€ ๊ฑด๋ฐฐ!

scrollAssist ๋ฐ autoFocusAssist ๋ฅผ true ํ•˜๋ฉด ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค๋ฉด ๋ฌด์Šจ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

aplimovil์˜ ์ˆ˜์ •์€ ๋‚ด๊ฐ€ ๊ฒช๊ณ  ์žˆ๋˜ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

์˜ˆ, ์™œ ๋‹น์‹ ์ด ๊ทธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์‹ค๋กœ ์„ค์ •ํ–ˆ๋Š”์ง€์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@JefferE Ionic์˜ scrollAssist ๋ฐ autoFocusAssist ๊ธฐ๋Šฅ์ด iOS์—์„œ ๊ณ ์žฅ๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(Android์—์„œ๋Š” ๊ฑฐ์˜ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ์ ์–ด๋„ ์ €์—๊ฒŒ๋Š” ๊ฐœ์„  ์‚ฌํ•ญ์ด ๊ฑฐ์˜ ๋ˆˆ์— ๋„์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ์—ฌ๊ธฐ์— ๋ชจ๋“  ๋ฌธ์ œ ๋ณด๊ณ ์„œ๋ฅผ ์ถฉ๋ถ„ํžˆ ๊ธฐ๋กํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ถœ์‹œ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋ฐ”๋ผ๊ฑด๋Œ€ ๊ทธ๋“ค์ด ์–ธ์  ๊ฐ€ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์•Œ์•„์ฐจ๋ฆฌ๊ณ  iOS์—์„œ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์˜์›ํžˆ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ˜„์žฌ iOS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒ์ ์œผ๋กœ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

grid,keyboard.disablescroll(false)์˜ ion-textarea๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๋•Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp, {
            scrollPadding: false,
            scrollAssist: true,
            autoFocusAssist: false

    }),

์ด์˜จ ์ •๋ณด:

CLI Packages:

@ionic/cli-utils  : 1.10.2
    ionic (Ionic CLI) : 3.10.3

global packages:

    Cordova CLI : 7.0.1 

local packages:

    @ionic/app-scripts : 2.1.4
    Cordova Platforms  : android 6.2.3
    Ionic Framework    : ionic-angular 3.6.1

System:

    Android SDK Tools : 25.2.5
    ios-deploy        : 1.9.1 
    ios-sim           : 5.0.8 
    Node              : v6.11.3
    npm               : 3.10.10 
    OS                : macOS Sierra
    Xcode             : Xcode 8.3.3 Build version 8E3004b 

iOS ์—์„œ ํ‚ค๋ณด๋“œ๊ฐ€ ์ž…๋ ฅ ํ•„๋“œ ์œ„๋กœ ์Šคํฌ๋กค๋˜๊ณ  ์ฝ˜ํ…์ธ  ํ™”๋ฉด์ด ํ‚ค๋ณด๋“œ๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์•Œ์•„๋‚ธ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ๋•Œ(์˜ˆ: @ionic-native/keyboard)
ํ‚ค๋ณด๋“œ๊ฐ€ this.keyboard.onKeyboardShow().subscribe(()=>{ this.someFlag=true}) ํ‘œ์‹œ๋˜๋Š” ์ˆœ๊ฐ„ ์ธํ„ฐํŽ˜์ด์Šค์— ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์ด ๊ฐ€์ ธ ๊ฐ๋„ ๋ณ€๊ฒฝ ๊ฐ์ง€ ์Šค์Šค๋กœ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค ChangeDetectorRef ํ•˜๊ณ  ์‚ฌ์šฉํ•˜์—ฌ detectChanges() ์˜ ๊ธฐ๋Šฅ์„ subscribe .

์‚ฌ๋ก€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์ด gitrepo ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ€๋‹ด ์—†์ด ์‚ดํŽด๋ณด์„ธ์š”. subscribe(()=>{}) ์—

์˜ค๋Š˜์€ ์กฐ๊ธˆ ๋” ํ˜„๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค :)

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ชจ๋‘๋“ค ์ฆ๊ฑฐ์šด ์ฃผ๋ง ๋ณด๋‚ด์„ธ์š”!

์ด ๋ฌธ์ œ๊ฐ€ 1.5๋…„์ด ๋„˜์—ˆ๊ณ  ์•„๋ฌด๋Ÿฐ ์กฐ์น˜๋„ ์ทจํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์ด ์ €๋กœ์„œ๋Š” ๋‹นํ˜น์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด ์•ฑ์˜ ํ๋ฆ„์„ ์™„์ „ํžˆ ๋ง์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ณ  ํ’ˆ์งˆ์ด ์ข‹์ง€ ์•Š๊ฒŒ ๋ณด์ด๊ฒŒ ํ•˜๊ณ  ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋ฉ‹์ง€๊ฒŒ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํ•ดํ‚น์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @mhartington ๋‚ด๋ถ€์ ์œผ๋กœ ์—ฌ๊ธฐ์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ €๋Š” ์ง€๊ธˆ ionic์˜ PRO ๋ฒ„์ „์„ ์‚ฌ์šฉํ•œ ํ›„ ํ›„์† ์กฐ์น˜๋กœ Ionic์˜ @matthewkremer ์™€ ์ „ํ™” ํ†ตํ™”๋ฅผ

์ €์—๊ฒŒ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ด๊ฑฐ ํ•˜๋‚˜๋„ ์•ˆ์˜ˆ๋ป๋ณด์ž„..

์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ์ตœ์šฐ์„  ๊ณผ์ œ๊ฐ€ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์•„์นจ @adamdbradley ์˜ ํŠธ์œ—์„ ์ฐธ์กฐํ•˜์„ธ์š” .

์•ž์œผ๋กœ ๋ช‡ ์ผ/์ฃผ์— ์—…๋ฐ์ดํŠธ๋ฅผ ๊ธฐ๋Œ€ํ•˜์‹ญ์‹œ์˜ค

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ถˆํ•„์š”ํ•œ ํ•ดํ‚น์„ ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ณง ์‚ถ์„ ๋˜์ฐพ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด๋ฏธ WK๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ƒˆ๋กœ์šด ํ‚ค๋ณด๋“œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ค€๋น„ ์ค‘์ž…๋‹ˆ๋‹ค. cordova-plugin-ionic-wkkeyboard :

  1. ๋จผ์ € ionic-plugin-keyboard๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
cordova plugin rm ionic-keyboard-plugin --save
  1. ์ƒˆ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜:
cordova plugin add cordova-plugin-ionic-wkkeyboard --save

cc @hitendramalviya @ionut-movila @mmolhoek @Tyler-Darby @yingbaby @maulikakapure @aplimovil

์ด ์ƒˆ๋กœ์šด wkkeyboard์™€ FormGroups ๋ฐ FormControls๋กœ ion-textarea๋ฅผ ๋น„ํ™œ์„ฑํ™”/ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์ด์ƒํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ์–‘์‹์„ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•œ ํ›„ ion-textarea๋Š” ๋น„ํ™œ์„ฑํ™”๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. '์˜ค๋ž˜๋œ' ํ‚ค๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ๋ฐค์— ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค. :).

// ํŽธ์ง‘ํ•˜๋‹ค:
์•„๋งˆ๋„ ๋‹ค๋ฅธ ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ผํ•œ ๋™์ž‘.
https://github.com/ionic-team/ionic/issues/13170

ํ‚ค๋ณด๋“œ๊ฐ€ ์ž…๋ ฅ์„ ์œ„ํ•œ ์Šคํฌ๋กค์€ ๋ฌผ๋ก ์ด๊ณ  ๋‹จ์ˆœํžˆ ํฌ๊ธฐ ์กฐ์ •์„ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฌด์—‡์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์Šคํฌ๋กค ๋ฌธ์ œ๊ฐ€ ์ด๋ฏธ ํ•ด๊ฒฐ๋œ ๊ฒƒ ๊ฐ™์ง€๋งŒ ios์—์„œ ์—ฌ์ „ํžˆ ์ž…๋ ฅ์ด ํ™”๋ฉด ์ค‘์•™์— ์žˆ์„ ๋•Œ ํ‚ค๋ณด๋“œ๊ฐ€ ์˜ฌ๋ผ๊ฐ”์„ ๋•Œ ์ž…๋ ฅ์ด ์Šคํฌ๋กค๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ž…๋ ฅ์„ ํƒญํ•  ๋•Œ๋‚˜ ํ‚ค๋ณด๋“œ ํƒ์ƒ‰ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ชจ๋‘ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์—ฌ๊ธฐ์— ์ œ์‹œ๋œ ๋งŽ์€ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ ์•ฑ์ด ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ €์—์„œ Ionic์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)

์™€์šฐ 2018 ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๊ฒƒ๋„.

๊ทธ๋“ค์€ ๋‚˜์—๊ฒŒ์ด ์†”๋ฃจ์…˜์„ ์ฃผ์—ˆ์ง€๋งŒ ์™„์ „ํžˆ ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค

.์Šคํฌ๋กค ์ฝ˜ํ…์ธ  {
padding-bottom: 0! ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
}

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์‹ค์ˆ˜๋กœ ๊ธฐ๋ณธ ๋นŒ๋“œ์— _cordova-plugin-ionic-keyboard_๊ฐ€ ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  _ionic-plugin-keyboard_๋กœ ๊ต์ฒดํ–ˆ์„ ๋•Œ ์ž…๋ ฅ ๋ฒ„๊ทธ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚ด ์†”๋ฃจ์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ rm ionic-keyboard
ionic ์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ionic-plugin-keyboard ์ถ”๊ฐ€
npm install --save @ionic-native/keyboard

+1

Vendettall, ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค!

ํ—ค๋” ๋„๊ตฌ ๋ชจ์Œ์— ์ด ์„ฑ๊ฐ€์‹  ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

2018๋…„ 3์›” 29์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 11์‹œ 31๋ถ„, Emmanuel Fache [email protected]
์ผ๋‹ค:

Vendettall, ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค!

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/ionic-team/ionic/issues/6228#issuecomment-377362762 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AYPMdggjRqZBZ0wghtxFjVbPLViBkR8hks5tjUSQgaJpZM4IKhUp
.

์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด ์ตœ์‹  ์ด์˜จ ํ‚ค๋ณด๋“œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•ด ๋ณด์‹ญ์‹œ์˜ค.

ionic cordova plugin rm  ionic-keyboard-plugin
ionic cordova plugin add cordova-plugin-ionic-keyboard

๊ทธ๋Ÿฐ ๋‹ค์Œ ์„ค์ •

<preference name="KeyboardResizeMode" value="ionic" />

config.xml์—์„œ

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋Š” ์•ฑ์—์„œ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ค ์ด์œ ๋กœ ์ธํ•ด html ํ…Œ์ด๋ธ” ๋‚ด์˜ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ž…๋ ฅ์„ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ํ…Œ์ด๋ธ”์ด ๋‹ค์‹œ ๊ทธ๋ ค์ง€๊ณ  ํ…Œ์ด๋ธ” ์Šคํฌ๋กค์ด ์žฌ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
๋ˆ„๊ตฌ๋“ ์ง€ ์—ฌ๊ธฐ์—์„œ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ ๋ณ€ํ™˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ด…๋‹ˆ๋‹ค. ๊ฝค ์งœ์ฆ๋‚œ๋‹ค.
video-to-gif

์Šคํฌ๋กค๋ง pb์˜ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ํ•ดํ‚น์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/ionic-team/ionic/issues/10629#issuecomment -395084125

2017๋…„ 8์›” 1์ผ์— ์–ธ๊ธ‰๋œ

@dylanvdmerwe , @jgw96 @mhartington @Tyler-Darby @manucorporat @adamdbradley

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ €๋Š” Ionic 2 ๋ฐ 3 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์šฉ iOS ๋ฐ Android ํ”Œ๋žซํผ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฉ๊ธˆ ์‚ฌ์šฉ์ž ์ง€์ • ์ง€์‹œ๋ฌธ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋กค ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด ์ง€์‹œ๋ฌธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด scroll-into-view-if-needed ponyfill ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

npm install ion-input-scroll-into-view ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ion-input-scroll-into-view ์ง€์‹œ๋ฌธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

1 ๋‹จ๊ณ„
๋‹ค์Œ๊ณผ ๊ฐ™์ด ion-input-scroll-into-view ์ง€์‹œ๋ฌธ์„ ion-input ๋˜๋Š” ion-textarea์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

<ion-input ion-input-scroll-into-view></ion-input>

<ion-textarea ion-input-scroll-into-view></ion-textarea>

2 ๋‹จ๊ณ„

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ์œ„ ๊ตฌ์„ฑ ์š”์†Œ์˜ module.ts์—์„œ IonInputScrollIntoViewModule์„ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { ParentPage } from './parent';
import { IonInputScrollIntoViewModule } from 'ion-input-scroll-into-view';

@NgModule({
  declarations: [
    ParentPage
  ],
  imports: [
    IonicPageModule.forChild(ParentPage),
    IonInputScrollIntoViewModule
  ],
})
export class ParentPageModule {}

npm ๋งํฌ : https://www.npmjs.com/package/ion-input-scroll-into-view
๊นƒํ—ˆ๋ธŒ ๋งํฌ : https://github.com/melwinVincent/ion-input-scroll-into-view

๋ฌธ์ œ๋ฅผ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! Ionic 3์˜ ์†Œ์Šค ์ฝ”๋“œ์™€ ๋ฌธ์ œ๋ฅผ ๋ณ„๋„์˜ ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ Ionic 3์šฉ ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ธฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜์‹ญ์‹œ์˜ค.

์•„์ด์˜ค๋‹‰์„ ์ด์šฉํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ฌธ์ œ ์ด๋™: https://github.com/ionic-team/ionic-v3/issues/47

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰