# Num-Keypad In Perspective

**URL:** <https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [July 16, 2023, 5:21pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435 "2023-07-16T17:21:29Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![eddie\_johnson](https://avatars.discourse-cdn.com/v4/letter/e/57b2e6/32.png) [@eddie\_johnson](https://forum.inductiveautomation.com/u/eddie_johnson)\
**Post date:** [July 16, 2023, 5:21pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/1 "2023-07-16T17:21:29Z")

</div>

Is there an easy/best solution for a keypad in Perspective for a touchscreen?

---

<div class="post-metadata">

**Author:** ![deon.korb](https://avatars.discourse-cdn.com/v4/letter/d/8c91f0/32.png) [@deon.korb](https://forum.inductiveautomation.com/u/deon.korb)\
**Post date:** [July 17, 2023, 6:35am UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/2 "2023-07-17T06:35:48Z")

</div>

What is the issue?

I find that numeric fields bring up a numpad on all touch devices I've seen. Windows must just be in tablet mode.

---

<div class="post-metadata">

**Author:** ![eddie\_johnson](https://avatars.discourse-cdn.com/v4/letter/e/57b2e6/32.png) [@eddie\_johnson](https://forum.inductiveautomation.com/u/eddie_johnson)\
**Post date:** [July 17, 2023, 2:48pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/3 "2023-07-17T14:48:27Z")

</div>

Whether TabletMode or Windows OSK I want to click an input field and have the keypad come up and in focus.

---

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [July 18, 2023, 1:24pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/4 "2023-07-18T13:24:18Z")

</div>

Have you looked at the resources on the Exchange?

> **[Ignition Exchange](https://inductiveautomation.com/exchange/)**
>
> Discover, share, and download community made Ignition resources in collaboration with your organization or the Ignition community.

**Sample Result:**  
[Advanced Perspective Keypad](https://inductiveautomation.com/exchange/2380/overview)

---

<div class="post-metadata">

**Author:** ![eddie\_johnson](https://avatars.discourse-cdn.com/v4/letter/e/57b2e6/32.png) [@eddie\_johnson](https://forum.inductiveautomation.com/u/eddie_johnson)\
**Post date:** [July 18, 2023, 2:48pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/5 "2023-07-18T14:48:32Z")

</div>

I tried the keypad from there but it gave me an error and I abandoned it. For now, I'm using a third-party virtual keyboard ("Touch-It Virtual Keyboard"). It works in Perspective Workstation and allows me to log in. I don't see a way to only show the numeric keypad when needed or a way to keep the user from accessing the browser but it'll do for now.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [July 18, 2023, 3:05pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/6 "2023-07-18T15:05:00Z")

</div>

What errors did you get? I made the resource linked above and maybe can help you out. Did you try the example keypad that's shown? If it works, it should work with your project as well as long as you configure it properly.

---

<div class="post-metadata">

**Author:** ![pprickett](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@pprickett](https://forum.inductiveautomation.com/u/pprickett)\
**Post date:** [August 7, 2025, 6:54pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/7 "2025-08-07T18:54:04Z")

</div>

I’m trying to use the keypad from the ignition exchange, i followed the instructions and i could not get it to work either. I’m just looking for a simple number keypad in perspective using a windows computer but not using a actual keypad.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [August 7, 2025, 9:52pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/8 "2025-08-07T21:52:07Z")

</div>

Did you get my email response? Do the examples work on your system? If so, compare what you have vs what the examples have as there’s a few things you have to set up to get it to work properly.

---

<div class="post-metadata">

**Author:** ![David\_Stone](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/david_stone/32/79749_2.png) [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Post date:** [August 7, 2025, 10:09pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/9 "2025-08-07T22:09:56Z")

</div>

Having used this resource before, it’s a very clean system once set up. If you don’t get to the bottom of the issues on email, post screenshots and code and we may be able to help.

---

<div class="post-metadata">

**Author:** ![pprickett](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@pprickett](https://forum.inductiveautomation.com/u/pprickett)\
**Post date:** [August 13, 2025, 12:33pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/10 "2025-08-13T12:33:08Z")

</div>

I can get this to work as a single instance. But when i create a template with it, and use multiple instances of the template, even though i use different tags, they all change to the same value when i type a number in to the keypad. How do i use it in a template?

---

<div class="post-metadata">

**Author:** ![David\_Stone](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/david_stone/32/79749_2.png) [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Post date:** [August 13, 2025, 6:27pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/11 "2025-08-13T18:27:21Z")

</div>

If you are using michael.flagler’s keypad, there is a field that is needed for tracking the owner of the popup:  
`ownerId` - Used internally to track which field popup belongs to (this must exist)

This needs to be unique to each input element in order to work.

---

<div class="post-metadata">

**Author:** ![pprickett](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@pprickett](https://forum.inductiveautomation.com/u/pprickett)\
**Post date:** [August 14, 2025, 12:12pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/12 "2025-08-14T12:12:58Z")

</div>

Yes I have tried making it unique but now it wont write the setpoint.

Below is what I have changed on the numeric input and on the keypad popup.

Did I miss something?

 ![](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/b/bb5fcd5cd2c6cc36a048794f5401c2c3505d9eff.png)

 ![](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/d/9d57bf0fb8c8520a25b6827fb643e34c21e88d5f.png)

 ![](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/a/cac25147dee5b3f7304fad752ad2502ab0e1c704.png)

---

<div class="post-metadata">

**Author:** ![pprickett](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@pprickett](https://forum.inductiveautomation.com/u/pprickett)\
**Post date:** [August 20, 2025, 11:33am UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/13 "2025-08-20T11:33:54Z")

</div>

I’m guessing this keypad can not be used in a template because we can’t pass the owner ID.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [August 20, 2025, 11:57am UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/14 "2025-08-20T11:57:20Z")

</div>

It can, but I'll have to look at it again to explain how as I've been in the Vision world for a couple years and haven't been in Perspective in a while. I'll try to take a look again today to get the details on how to use it in a template.

---

<div class="post-metadata">

**Author:** ![pprickett](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@pprickett](https://forum.inductiveautomation.com/u/pprickett)\
**Post date:** [August 20, 2025, 12:10pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/15 "2025-08-20T12:10:45Z")

</div>

i am using it in the perspective i created a view that i can use as a template.

---

<div class="post-metadata">

**Author:** ![code\_skin](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@code\_skin](https://forum.inductiveautomation.com/u/code_skin)\
**Post date:** [August 20, 2025, 12:15pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/16 "2025-08-20T12:15:58Z")

</div>

> [@David\_Stone](#):
>
> `ownerId`

Did you try to match the casing here?

```python
OwnerID != ownerId

```

---

<div class="post-metadata">

**Author:** ![pprickett](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@pprickett](https://forum.inductiveautomation.com/u/pprickett)\
**Post date:** [August 20, 2025, 3:02pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/17 "2025-08-20T15:02:17Z")

</div>

where should this be added?

---

<div class="post-metadata">

**Author:** ![Brian\_Stilson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/brian_stilson/32/73410_2.png) [@Brian\_Stilson](https://forum.inductiveautomation.com/u/Brian_Stilson)\
**Post date:** [August 20, 2025, 5:27pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/18 "2025-08-20T17:27:38Z")

</div>

I like using the keypad in the exchange others mentioned, but here’s a potential snag with perspective.

By calling the keypad up with an entry field, it will _also_ trigger the operating system’s on-screen keyboard if that’s enabled. If you disable the OS’s OSK, that will solve that problem, but you won’t be able to use it for logging in. The login screen in Perspective is separate from the project, and you cannot use project resources in it. There’s no way you can call up a view from that screen to log in, so Perspective essentially _forces_ you to use the OSK built into the OS, anyway. Unless you have _no_ security whatsoever on your project and everything is just wide open and accessible, you _will_ be using the OSOSK. Period.

The way to get around the “double keyboard” problem is making what launches the custom keypad in your project some object other than a text or numeric entry object. I like to use an icon personally. It takes some digging around with how it works to get it working, but it’s definitely possible. That way, you can keep the OS’s OSK enabled, but an event tied to an object that isn’t an actual keyboard entry object won’t trigger it, and you won’t get double keyboards.

That said, there’s honestly very little reason to do anything other than the OS pop-up keyboard that’s built in. The custom view on the exchange thing is nice because it shows you the acceptable range and the engineering units, but you can do that elsewhere on your view, maybe not as cleanly, but you can. The big disadvantage is that you’re dealing with a popup window which is not great if you’re using the app with mobile. The numeric keypad is usually fine, but the ASCII keyboard is too wide for a mobile phone and looks bad.

Bottom-line, trying to finagle this custom exchange keyboard into your project is a lot of effort for relatively little gain; and it causes more problems, especially with mobile responsiveness, than it solves. Most of the time, I just opt to use the OS’s keyboard and call it a day. It’s fine. It works. Could it be nicer? Sure. Is it ever _necessary_ for it to be nicer besides “the customer doesn’t personally like it for personal artistic reasons”? No. Besides, any customer who complains about it…they use that same exact keyboard on their mobile devices every single day, so why is it all of the sudden a problem on their HMI?

---

<div class="post-metadata">

**Author:** ![william.newenhisen](https://avatars.discourse-cdn.com/v4/letter/w/54ee81/32.png) [@william.newenhisen](https://forum.inductiveautomation.com/u/william.newenhisen)\
**Post date:** [August 21, 2025, 5:31pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/19 "2025-08-21T17:31:05Z")

</div>

I am also looking into this and was wondering if you could forward me that email? would be very curious to see how it works!

---

<div class="post-metadata">

**Author:** ![pprickett](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@pprickett](https://forum.inductiveautomation.com/u/pprickett)\
**Post date:** [August 26, 2025, 12:12pm UTC](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435/20 "2025-08-26T12:12:59Z")

</div>

I’m trying to use the on screen keyboard now, in the perspective workstation but it does not appear when i click in a input field, i have to open the keyboard manually, how do we make it come up when you click on a input field?

[Next page](https://forum.inductiveautomation.com/t/num-keypad-in-perspective/76435.md?page=2)
